:root{color-scheme:light;--bg: #f5f7fa;--panel: #ffffff;--panel-muted: #f8fafc;--line: #dce3ea;--line-strong: #b8c4d0;--text: #111827;--muted: #637083;--accent: #147260;--accent-2: #235aa6;--danger: #b4232e;--ok: #1b7f4d;--shadow: none}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Hiragino Kaku Gothic ProN,Meiryo,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{min-height:100vh;display:grid;grid-template-columns:236px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;padding:16px 12px;background:#fff;color:var(--text);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:14px;overflow-y:auto}.sidebar:before,.sidebar:after{content:"";position:absolute;pointer-events:none;opacity:0}.sidebar>*{position:relative;z-index:1}.sidebar-training-active{background:linear-gradient(180deg,#fffffff0,#effaf4f5),#fff}.sidebar-training-active:before{top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 18% 14%,rgba(255,255,255,.84),transparent 22%),radial-gradient(circle at 82% 8%,rgba(118,198,255,.18),transparent 28%),radial-gradient(circle at 50% 72%,rgba(31,138,112,.12),transparent 34%),linear-gradient(180deg,#f5fcff57,#e6f9f147);-webkit-backdrop-filter:blur(10px) saturate(1.1);backdrop-filter:blur(10px) saturate(1.1);animation:weather-glow 8s ease-in-out infinite;opacity:1}.rain-overlay{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0;border-radius:inherit}.sidebar>.rain-overlay,.active-run-card>.rain-overlay{position:absolute;z-index:0}.rain-field{position:absolute;top:0;right:-6px;bottom:0;left:-6px}.rain-drop{position:absolute;top:-12%;border-radius:999px;background:linear-gradient(to bottom,#78b8e800,#5ca2e080 38%,#96cefa 88%,#e2f4ff00);will-change:top,transform;animation-name:rain-fall;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes rain-fall{0%{top:-12%;transform:translate(0)}to{top:112%;transform:translate(11px)}}.sidebar-brand{border:0;background:transparent;color:var(--text);padding:0;text-align:left;cursor:pointer}.sidebar-brand strong,.sidebar-brand span{display:block}.sidebar-brand strong{font-size:19px}.sidebar-brand .brand-title{display:inline-flex;align-items:center;gap:7px}.sidebar-brand .brand-title svg{flex:0 0 auto;color:#1f8a70}.sidebar-brand span{color:var(--muted);font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-brand:hover strong{color:var(--accent)}.side-project{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:700}.side-project-head{display:flex;align-items:center;justify-content:flex-start;gap:2px}.side-project-control{display:grid;grid-template-columns:minmax(0,1fr) 28px;gap:6px;align-items:center}.side-project select{width:100%;min-width:0;border:1px solid var(--line-strong);border-radius:6px;background:#fff;color:var(--text);padding:9px 10px}.side-project-add,.side-project-delete{width:28px;height:28px;border:0;border-radius:7px;background:transparent;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;cursor:pointer;transition:background .15s ease,color .15s ease}.side-project-add{width:24px;height:24px}.side-project-add:hover{background:#e7f4f0;color:#0c7a5e}.side-project-delete:hover:not(:disabled){background:#fdecea;color:#c0392b}.side-project-delete:disabled{opacity:.3;cursor:not-allowed}.side-nav{display:grid;gap:6px}.nav-section-label{margin:8px 10px 0;color:var(--muted);font-size:11px;font-weight:700}.side-nav button,.side-settings{width:100%;min-height:38px;border:1px solid transparent;border-left:3px solid transparent;border-radius:6px;background:transparent;color:var(--text);padding:0 10px 0 9px;display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;font-weight:700}.side-nav button.nav-child{padding-left:12px}.nav-icon{width:28px;height:28px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px}.dashboard-icon{background:#eef4fb;color:#235aa6}.dataset-icon{background:#f7eed9;color:#a8701b}.model-icon{background:#e8f7ed;color:#1b7f4d}.annotate-icon{background:#f1ecfb;color:#6d4bc4}.side-nav button.active .annotate-icon{background:#e6dcfa}.name-tag{display:inline-flex;align-items:center;gap:6px;min-width:0}.name-tag>svg{flex:0 0 auto}.name-tag.seed>svg{color:#b07a22}.name-tag.leaf>svg{color:#1f8a70}.name-tag.flask>svg{color:#3a7ad9}.name-tag.report>svg{color:#6b54c9}.side-nav button.active .dataset-icon{background:#efe0c2}.side-nav button.active .model-icon{background:#d6f0df}.side-nav button:hover,.side-settings:hover{background:#f2f6f9;border-color:#d0dce7;border-left-color:#d0dce7}.side-nav button.active{background:#e7f4f0;border-color:#a5d4c6;border-left-color:var(--accent);color:#075946}.side-settings{margin-top:0}.connection-chip{border:1px solid var(--line);border-radius:6px;padding:9px 10px;background:var(--panel-muted);color:var(--muted);display:flex;justify-content:space-between;gap:8px;font-size:12px}.connection-chip.ok strong{color:var(--ok)}.topbar{height:64px;display:grid;grid-template-columns:minmax(180px,240px) minmax(260px,420px) 1fr auto;gap:14px;align-items:center;padding:0 20px;background:#182331;color:#f7fafc}.brand{min-width:0}.brand strong,.brand span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand span{color:#b8c5d2;font-size:12px}.project-switcher{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center;color:#b8c5d2;font-size:12px}.project-switcher select,.topbar select{min-width:0;width:100%;border:1px solid #42546a;border-radius:6px;background:#243244;color:#fff;padding:8px 10px}.topnav{display:flex;gap:6px;min-width:0}.topnav button,.icon-button{border:1px solid transparent;border-radius:6px;background:transparent;color:#cbd5e1;min-height:36px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:6px}.topnav button.active,.icon-button:hover{background:#2d3d51;color:#fff}.workspace{padding:0;min-width:0;background:var(--bg)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:0;box-shadow:var(--shadow);min-width:0;padding:16px}.page-grid{display:grid;grid-template-columns:minmax(460px,1fr) minmax(320px,420px);gap:16px}.project-page{display:grid;gap:0;min-height:100vh}.head-actions,.modal-inline-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.model-detail-icons{display:flex;gap:6px;align-items:center}.run-card-head.study-card-head{justify-content:flex-start;gap:8px}.run-card-head.study-card-head>strong{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-card-head.study-card-head>.status-chip{flex:0 0 auto}.run-card-head.study-card-head>.study-del{margin-left:auto}.study-del{cursor:pointer;color:#b06a5a;opacity:.65;display:inline-flex;padding:2px;border-radius:6px;margin-left:4px}.study-del:hover{opacity:1;background:#c0392b1f}.active-run-stopbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:13px}.active-run-stopbar>span{color:#6f6048}.kk-spotlight{position:fixed;z-index:9400;border-radius:12px;border:3px solid #e7a33e;pointer-events:none;animation:kk-pulse .7s ease-in-out infinite alternate,kk-pop .2s ease-out}.kk-spotlight-label{position:absolute;left:50%;top:-8px;transform:translate(-50%,-100%);background:#2a2118;color:#fff;font-size:12px;font-weight:700;padding:3px 10px;border-radius:9px;white-space:nowrap;box-shadow:0 4px 14px #00000047}.kk-spotlight-label:after{content:"";position:absolute;left:50%;top:100%;margin-left:-5px;border:5px solid transparent;border-top-color:#2a2118}@keyframes kk-pulse{0%{box-shadow:0 0 0 2px #e7a33e4d,0 0 10px #e7a33e73}to{box-shadow:0 0 0 6px #e7a33e42,0 0 22px #e7a33eb3}}@keyframes kk-pop{0%{transform:scale(1.12);opacity:.4}to{transform:scale(1);opacity:1}}.kakashi{display:inline-block;line-height:0}.kakashi svg{display:block;overflow:visible}.kakashi-body{transform-box:view-box;transform-origin:24px 41px}.kakashi-eyes{transform-box:fill-box;transform-origin:center}.kakashi-idle .kakashi-body{animation:kakashi-sway 3.4s ease-in-out infinite}.kakashi-thinking .kakashi-body{animation:kakashi-bob .85s ease-in-out infinite}.kakashi-notice .kakashi-body{animation:kakashi-wiggle .45s ease-in-out 3}.kakashi-happy .kakashi-body{animation:kakashi-hop .6s ease-out 1}.kakashi-idle .kakashi-eyes{animation:kakashi-blink 4.8s ease-in-out infinite}@keyframes kakashi-sway{0%,to{transform:rotate(-3.5deg)}50%{transform:rotate(3.5deg)}}@keyframes kakashi-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-2.5px)}}@keyframes kakashi-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}@keyframes kakashi-hop{0%{transform:translateY(0)}40%{transform:translateY(-6px)}70%{transform:translateY(0)}85%{transform:translateY(-2px)}to{transform:translateY(0)}}@keyframes kakashi-blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.12)}}.kakashi-head{transform-box:view-box;transform-origin:24px 28px}.kakashi-b-sleep .kakashi-body{animation:kk-sleep 3.6s ease-in-out infinite}.kakashi-b-sleep .kakashi-pupils{opacity:0}@keyframes kk-sleep{0%,to{transform:rotate(-9deg)}50%{transform:rotate(-7deg) translateY(.6px)}}.kk-zzz text{opacity:0}.kk-zzz .kk-z1{animation:kk-z 2.4s ease-in-out infinite}.kk-zzz .kk-z2{animation:kk-z 2.4s ease-in-out infinite .6s}.kk-zzz .kk-z3{animation:kk-z 2.4s ease-in-out infinite 1.2s}@keyframes kk-z{0%{opacity:0;transform:translateY(2px)}35%{opacity:.9}to{opacity:0;transform:translateY(-3px)}}.kakashi-b-spin .kakashi-body{transform-origin:24px 40px;animation:kk-spin 1.6s cubic-bezier(.4,0,.3,1) 1}@keyframes kk-spin{0%{transform:rotate(0)}to{transform:rotate(720deg)}}.copilot-fab.b-wander{animation:kk-wander 4.8s ease-in-out 1}@keyframes kk-wander{0%{transform:translate(0)}20%{transform:translate(-34px)}45%{transform:translate(-34px)}52%{transform:translate(0)}76%{transform:translate(26px)}to{transform:translate(0)}}.kakashi-b-smoke .kakashi-body{animation:kakashi-sway 4s ease-in-out infinite}.kakashi-b-smoke .kakashi-head ellipse[cx="20"][cy="20"],.kakashi-b-smoke .kakashi-head ellipse[cx="28"][cy="20"]{fill:#e23b2b}.kakashi-b-smoke .kakashi-pupils circle{fill:#14110c;r:1.1}.copilot-fab.b-peek{transform-origin:bottom right;animation:kk-peek 4.4s ease-in-out 1}@keyframes kk-peek{0%{transform:translate(0) rotate(0)}16%{transform:translate(74px) rotate(0)}34%{transform:translate(74px) rotate(0)}50%{transform:translate(50px) rotate(-50deg)}61%{transform:translate(46px) rotate(-58deg)}72%{transform:translate(50px) rotate(-50deg)}86%{transform:translate(50px) rotate(-50deg)}to{transform:translate(0) rotate(0)}}.kakashi-b-lightning .kakashi-body{animation:kk-burn 3.5s ease-out 1}@keyframes kk-burn{0%{filter:none;transform:translate(0)}4%{filter:brightness(3)}8%{filter:brightness(.45) sepia(.6);transform:translate(1px)}10%{transform:translate(-1.5px)}12%{transform:translate(1.5px)}14%{transform:translate(-1px)}16%{transform:translate(0);filter:brightness(.5) sepia(.6)}72%{filter:brightness(.55) sepia(.5)}to{filter:none;transform:translate(0)}}.kk-bolt{animation:kk-bolt-flash 3.5s linear 1}@keyframes kk-bolt-flash{0%{opacity:0}2%{opacity:1}5%{opacity:0}7%{opacity:1}9%{opacity:0}to{opacity:0}}.kk-flames{animation:kk-flames-show 3.5s ease-out 1}@keyframes kk-flames-show{0%,8%{opacity:0}12%{opacity:1}85%{opacity:1}to{opacity:0}}.kk-fl{transform-box:fill-box;transform-origin:center bottom;animation:kk-flicker .3s ease-in-out infinite}.kk-fl2{animation-delay:.1s}.kk-fl3{animation-delay:.2s}@keyframes kk-flicker{0%,to{transform:scaleY(1) scaleX(1)}50%{transform:scaleY(1.3) scaleX(.82)}}.kakashi-b-collapse .kakashi-body{transform-origin:24px 76px;animation:kk-collapse 5s ease-in-out 1}.kakashi-b-collapse .kakashi-pupils{opacity:0}@keyframes kk-collapse{0%{transform:rotate(0)}8%{transform:rotate(9deg)}16%{transform:rotate(-7deg)}28%{transform:rotate(87deg)}34%{transform:rotate(84deg)}70%{transform:rotate(86deg)}84%{transform:rotate(86deg)}92%{transform:rotate(-5deg)}to{transform:rotate(0)}}.copilot-fab.b-rocket{animation:kk-rocket 4s ease-in-out 1}@keyframes kk-rocket{0%{transform:translateY(0)}10%{transform:translateY(4px)}18%{transform:translateY(2px)}30%{transform:translateY(-40px)}48%{transform:translateY(-760px)}64%{transform:translateY(-760px)}to{transform:translateY(0)}}.kakashi-b-rocket .kakashi-body{animation:kk-rocket-shake .06s linear 28}@keyframes kk-rocket-shake{0%,to{transform:translate(-.6px)}50%{transform:translate(.6px)}}.kk-exhaust{animation:kk-exhaust-show 4s ease-out 1}@keyframes kk-exhaust-show{0%,8%{opacity:0}14%{opacity:1}64%{opacity:1}72%{opacity:0}to{opacity:0}}.kk-ex{transform-box:fill-box;transform-origin:center top;animation:kk-ex-flick .08s ease-in-out infinite}.kk-ex2{animation-delay:.03s}.kk-ex3{animation-delay:.05s}@keyframes kk-ex-flick{0%,to{transform:scaleY(1) scaleX(1)}50%{transform:scaleY(1.45) scaleX(.78)}}.kakashi-b-mushroom .kakashi-body{animation:kk-trip 2.4s ease-in-out infinite}@keyframes kk-trip{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg) translateY(-1px)}}.kakashi-b-mushroom .kakashi-pupils circle{r:1.2;animation:kk-rainbow 1.1s linear infinite}@keyframes kk-rainbow{0%{fill:#ff2d2d}16%{fill:#ffb02d}33%{fill:#ffe92d}50%{fill:#3ddc4a}66%{fill:#2db5ff}83%{fill:#b15bff}to{fill:#ff2d2d}}.kk-smoke .kk-puff{opacity:0}.kk-puff1{animation:kk-puff 2.6s ease-out infinite}.kk-puff2{animation:kk-puff 2.6s ease-out infinite .8s}.kk-puff3{animation:kk-puff 2.6s ease-out infinite 1.6s}@keyframes kk-puff{0%{opacity:0;transform:translateY(2px)}25%{opacity:.55}to{opacity:0;transform:translateY(-7px)}}.kakashi-b-dance .kakashi-body{transform-origin:24px 60px;animation:kk-dance .55s ease-in-out infinite}@keyframes kk-dance{0%{transform:rotate(-9deg) translateY(0)}50%{transform:rotate(9deg) translateY(-3px)}to{transform:rotate(-9deg) translateY(0)}}.kakashi-b-headfall .kakashi-body{animation:none}.kakashi-b-headfall .kakashi-head{animation:kk-headfall 2.7s ease-in-out 1}@keyframes kk-headfall{0%{transform:translateY(0) rotate(0)}18%{transform:translateY(0) rotate(-7deg)}46%{transform:translateY(33px) rotate(96deg)}64%{transform:translateY(35px) rotate(90deg)}80%{transform:translateY(35px) rotate(90deg)}to{transform:translateY(0) rotate(0)}}.kakashi-clothes{transform-box:view-box;transform-origin:24px 32px}.kakashi-hat{transform-box:view-box;transform-origin:24px 13px}.kk-crow{transform-box:view-box;transform-origin:32px 7px}.kakashi-b-crow .kakashi-body{animation:kk-shoo .5s ease-in-out infinite}@keyframes kk-shoo{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}.kk-crow{animation:kk-crow-fly 3s ease-in-out 1}@keyframes kk-crow-fly{0%{opacity:0;transform:translate(16px,-16px)}20%{opacity:1;transform:translate(0)}48%{transform:translate(0)}to{opacity:0;transform:translate(22px,-22px)}}.kk-crow-wing{transform-box:fill-box;transform-origin:left center;animation:kk-flap .26s ease-in-out infinite}@keyframes kk-flap{0%,to{transform:rotate(0)}50%{transform:rotate(-32deg)}}.kakashi-b-crow .kakashi-hat{animation:kk-hat-steal 3s ease-in-out 1}@keyframes kk-hat-steal{0%,46%{transform:translate(0) rotate(0);opacity:1}62%{transform:translate(5px,-7px) rotate(18deg)}to{transform:translate(20px,-20px) rotate(40deg);opacity:0}}.kakashi-b-undress .kakashi-body{animation:none}.kakashi-b-undress .kakashi-clothes{animation:kk-undress 3.2s ease-in-out 1}@keyframes kk-undress{0%{transform:translateY(0) rotate(0)}30%{transform:translateY(20px) rotate(-3deg)}52%{transform:translateY(40px) rotate(-7deg);opacity:.92}74%{transform:translateY(40px) rotate(-7deg);opacity:.92}to{transform:translateY(0) rotate(0)}}.copilot-mutter{position:relative;align-self:flex-end;margin:0 8px 2px 0;background:#fffdf7;color:#5a4a2e;border:1px solid rgba(185,130,44,.4);border-radius:14px;padding:6px 12px;font-size:12.5px;max-width:190px;box-shadow:0 6px 18px #503c142e;animation:balloon-up .2s ease-out both}.copilot-mutter-tail i{display:block;background:#fffdf7;border:1px solid rgba(185,130,44,.4);border-radius:50%;position:absolute}.copilot-mutter-tail i:nth-child(1){width:7px;height:7px;right:10px;bottom:-5px}.copilot-mutter-tail i:nth-child(2){width:4px;height:4px;right:5px;bottom:-11px}.copilot-root{position:fixed;right:22px;bottom:22px;z-index:9000;display:flex;flex-direction:column;align-items:flex-end;gap:12px;pointer-events:none}.copilot-bubble.open{pointer-events:auto}.copilot-fab{pointer-events:auto;background:transparent;border:none;box-shadow:none;display:flex;align-items:flex-end;justify-content:center;cursor:pointer;padding:0;line-height:0;filter:drop-shadow(0 7px 9px rgba(70,52,18,.32));transition:transform .15s ease,filter .15s ease}.copilot-fab:hover{transform:translateY(-3px) scale(1.05);filter:drop-shadow(0 11px 14px rgba(70,52,18,.4))}.copilot-bubble{width:270px;background:#fffdf7;color:var(--text);border:1px solid rgba(185,130,44,.32);border-radius:16px;box-shadow:0 14px 40px #503c1438;padding:14px 16px;font-size:13px;line-height:1.6;transform-origin:bottom right;transition:opacity .2s ease,transform .26s cubic-bezier(.22,.9,.3,1.25),visibility .2s}.copilot-bubble.open{opacity:1;transform:translateY(0) scale(1);visibility:visible}.copilot-bubble.closed{opacity:0;transform:translateY(12px) scale(.9);visibility:hidden;pointer-events:none}.copilot-bubble-head{display:flex;align-items:center;gap:7px;margin-bottom:8px}.copilot-bubble-head strong{flex:1}.copilot-bubble-note{font-size:11px;color:#8a7a5a;margin-top:6px}.copilot-log{max-height:320px;min-height:90px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:4px 2px;margin-bottom:8px}.copilot-greet{font-size:12.5px;color:#6f6048;line-height:1.6}.copilot-msg{display:flex;flex-direction:column;gap:5px;max-width:90%}.copilot-msg.user{align-self:flex-end;align-items:flex-end}.copilot-msg.kakashi{align-self:flex-start;align-items:flex-start}.copilot-msg-text{font-size:12.5px;line-height:1.55;border-radius:12px;padding:7px 11px;white-space:pre-wrap;word-break:break-word}.copilot-msg.kakashi .copilot-msg-text{background:#f2e7cf;color:#4a3f29}.copilot-msg.kakashi.err .copilot-msg-text{background:#fbe1da;color:#8a2f1c}.copilot-msg.user .copilot-msg-text{background:#6f9e5a;color:#fff}.copilot-msg-text.muted{background:transparent;opacity:.7}.copilot-nav-chip{border:1px solid rgba(122,90,30,.4);background:#fff;color:#6b4f1c;border-radius:10px;padding:5px 11px;font-size:12px;cursor:pointer;max-width:100%;white-space:normal;text-align:left;line-height:1.4}.copilot-nav-chip:hover{background:#fbf3df}.copilot-input{display:flex;gap:6px;align-items:center}.copilot-input input{flex:1 1 auto;min-width:0;font-size:12.5px}.copilot-input>button{flex:0 0 auto;white-space:nowrap}.copilot-badge{position:absolute;top:4px;right:8px;z-index:1;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#d2452f;color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0000004d}.copilot-fab{position:relative}.hover-balloon{position:fixed;z-index:9999;width:max-content;max-width:min(288px,92vw);background:#fffdf7;color:var(--text);font-size:12.5px;line-height:1.55;padding:8px 12px;border-radius:12px;box-shadow:0 12px 34px #503c1433,0 2px 6px #503c141f;border:1px solid rgba(185,130,44,.36);pointer-events:none;white-space:pre-line;word-break:break-word}.hover-balloon.above{transform:translate(-50%,-100%);animation:balloon-up .15s ease-out both}.hover-balloon.below{transform:translate(-50%);animation:balloon-down .15s ease-out both}@keyframes balloon-up{0%{opacity:0;transform:translate(-50%,calc(-100% + 6px))}to{opacity:1;transform:translate(-50%,-100%)}}@keyframes balloon-down{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.hover-balloon:before,.hover-balloon:after{content:"";position:absolute;width:0;height:0;border-style:solid}.hover-balloon:before{border-width:7px;border-color:transparent;left:var(--arrow-x, 50%);margin-left:-7px}.hover-balloon:after{border-width:6px;border-color:transparent;left:var(--arrow-x, 50%);margin-left:-6px}.hover-balloon.above:before{top:100%;border-top-color:#b9822c5c}.hover-balloon.above:after{top:100%;margin-top:-1.5px;border-top-color:#fffdf7}.hover-balloon.below:before{bottom:100%;border-bottom-color:#b9822c5c}.hover-balloon.below:after{bottom:100%;margin-bottom:-1.5px;border-bottom-color:#fffdf7}.notice.dismissible{display:flex;align-items:center;justify-content:space-between;gap:10px}.notice-close{background:transparent;border:none;cursor:pointer;color:inherit;opacity:.55;padding:2px;display:inline-flex;align-items:center}.notice-close:hover{opacity:1}.meta-note{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#555;background:#0000000a;border-radius:6px;padding:2px 8px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-note{font-size:11px;color:#777;display:block;margin-top:2px;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dataset-note-edit{display:flex;flex-direction:column;gap:6px;margin:6px 0;max-width:480px}.dataset-note-edit textarea{width:100%}.run-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}.run-card-head>strong{min-width:0}.run-card-head>button{flex:0 0 auto;white-space:nowrap}.run-card-head.clickable-head{cursor:pointer;border-radius:6px;padding:2px 4px;margin:-2px -4px 4px}.run-card-head.clickable-head:hover{background:#0000000a}.run-card-head .head-hint{margin-left:8px;font-size:11px;font-weight:400;opacity:.6}.study-chat-log{max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:8px 2px;margin:6px 0}.chat-msg{display:flex;flex-direction:column;gap:4px;max-width:92%}.chat-msg.user{align-self:flex-end;align-items:flex-end}.chat-msg.assistant{align-self:flex-start;align-items:flex-start}.chat-bubble{border-radius:12px;padding:8px 12px;font-size:13px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.chat-msg.user .chat-bubble{background:#2d6cdf;color:#fff}.chat-msg.assistant .chat-bubble{background:#0000000d;color:inherit}.chat-bubble.muted{background:transparent;opacity:.7}.chat-applied{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:11px;opacity:.85}.chat-chip{background:#2ea04324;color:#1a7f37;border-radius:999px;padding:1px 8px;font-size:11px;white-space:nowrap}.study-chat-examples{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}.chat-chip-btn{border:1px solid rgba(0,0,0,.15);background:transparent;border-radius:999px;padding:3px 10px;font-size:12px;cursor:pointer}.chat-chip-btn:hover:not(:disabled){background:#0000000d}.study-chat-input{display:flex;gap:8px;align-items:center}.study-chat-input input{flex:1}button.danger-ghost{color:#c0392b;border-color:#c0392b59}button.danger-ghost:hover:not(:disabled){background:#c0392b14;border-color:#c0392b8c}button.danger-ghost:disabled{color:inherit}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:12px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.advanced-train-box{border:1px solid var(--line);border-radius:6px;background:#f8fafb;padding:12px;display:grid;gap:12px}.checkbox-field{align-content:start;grid-template-columns:auto 1fr}.checkbox-field input{width:18px;height:18px;margin:2px 0 0}.checkbox-field .inline-help{grid-column:1 / -1}.form-grid.cvat-form{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.form-grid .wide{grid-column:1 / -1}.settings-block{border:1px solid var(--line);border-radius:8px;background:var(--panel-muted);padding:14px;display:grid;align-content:start;gap:10px}.settings-block-head,.mcp-register-head,.mcp-command-row,.mcp-status-row,.inline-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.settings-block-head{justify-content:space-between;margin-bottom:8px}.settings-block-head h3{margin:0}.mcp-settings-block{display:grid;gap:12px}.mcp-status-row{align-items:flex-start}.mcp-register-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mcp-register-panel,.mcp-http-panel{min-width:0;display:grid;gap:8px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px}.mcp-register-head{justify-content:space-between}.mcp-register-head>div{display:flex;gap:6px}.settings-code{min-height:72px;max-height:220px;overflow:auto;margin:0;padding:10px;border:1px solid #d8e0e8;border-radius:6px;background:#0f172a;color:#e2e8f0;font-size:12px;line-height:1.45;white-space:pre}.compact-kv{margin:0}.inline-actions{justify-content:flex-end}.settings-actions{justify-content:flex-start;margin-top:2px}.compact-actions{justify-content:flex-start}.compact-modal{width:min(760px,calc(100vw - 32px))}.shipping-modal{width:min(860px,calc(100vw - 28px))}.shipping-settings-modal{width:min(980px,calc(100vw - 28px));max-height:min(88vh,920px);overflow:auto}.shipping-page{display:grid;gap:16px;padding:24px}.shipping-page .page-head h1{display:flex;align-items:center;gap:8px}.shipping-workbench{display:grid;gap:12px}.shipping-setting-summary,.shipment-downloads,.remote-downloads{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.shipping-setting-summary{color:var(--muted);font-weight:800}.download-chip-wrap{display:inline-flex;align-items:center;gap:4px}.download-chip{display:inline-flex;align-items:center;gap:6px;min-height:32px;border:1px solid var(--line);border-radius:7px;padding:5px 9px;background:#fff;color:var(--text);text-decoration:none;font-weight:900}.remote-downloads{align-items:stretch;flex-direction:column}.destination-results{display:grid;gap:8px}.destination-results>strong{font-size:13px}.destination-result{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:9px}.destination-result>div:first-child{min-width:0;display:grid;gap:4px}.destination-result.completed{border-color:#b7e0c4;background:#f3fbf5}.destination-result.failed{border-color:#f3b6b6;background:#fff5f5}.destination-kind{width:fit-content;border-radius:999px;padding:2px 8px;background:#e2e8f0;color:#334155;font-size:11px;font-weight:900}.destination-result.completed .destination-kind{background:#dcfce7;color:#166534}.destination-result.failed .destination-kind{background:#fee2e2;color:#991b1b}.destination-result small{color:var(--muted)}.destination-result a{color:var(--accent);overflow-wrap:anywhere}.destination-result-actions{display:inline-flex;gap:5px;flex:0 0 auto}.shipment-uri-row{display:flex;align-items:center;gap:6px;min-width:0}.shipment-uri-row code,.shipment-uri-row a{min-width:0;overflow-wrap:anywhere}.shipping-modal .modal-head h2{display:inline-flex;align-items:center;gap:8px}.shipping-grid{display:grid;grid-template-columns:1fr;gap:18px}.shipping-pane{min-width:0;display:grid;gap:12px;align-content:start;padding-top:2px}.shipping-pane+.shipping-pane{border-top:1px solid var(--line);padding-top:16px}.shipping-pane-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.shipping-pane-head h3{margin:0;font-size:14px}.shipping-pane-head span{color:var(--muted);font-size:12px;font-weight:800}.mini-tabs{padding:2px}.mini-tabs button{min-height:28px;padding:4px 10px;font-size:12px}.ship-destination-list{display:grid;gap:8px}.ship-destination,.ship-format,.shipment-result,.shipment-row{border:1px solid var(--line);border-radius:8px;background:#fff}.ship-destination{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px}.ship-destination.active,.ship-format.active{border-color:#2563eb8c;background:#f5f9ff}.ship-destination-main{min-width:0;display:flex;align-items:flex-start;gap:8px;cursor:pointer}.ship-destination-main input,.ship-format input{margin-top:3px}.ship-destination-main span,.ship-format span{min-width:0;display:grid;gap:2px}.ship-destination-main strong,.ship-format strong,.shipment-row strong{overflow-wrap:anywhere}.ship-destination-main small,.ship-format small,.shipment-row small{color:var(--muted);overflow-wrap:anywhere}.ship-destination-actions{display:inline-flex;gap:5px;flex:0 0 auto}.ship-format-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ship-format{display:flex;align-items:flex-start;gap:8px;padding:9px;cursor:pointer;min-height:58px}.shipping-section-title{margin-top:4px;color:var(--muted);font-size:12px;font-weight:900;letter-spacing:0}.qa-summary{display:grid;gap:5px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#fff}.qa-summary>div{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.qa-summary strong{font-size:13px}.qa-summary span{display:inline-flex;align-items:center;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:900}.qa-summary small{color:var(--muted);overflow-wrap:anywhere}.qa-summary.tested{border-color:#b7e0c4;background:#f3fbf5}.qa-summary.tested span{color:#166534;background:#dcfce7}.qa-summary.untested{border-color:#f0d59a;background:#fffaf0}.qa-summary.untested span{color:#92400e;background:#ffedd5}.qa-summary.compact{padding:8px 10px}.shipping-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;padding-top:4px}.shipping-actions.compact{justify-content:flex-start}.shipment-console{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(0,1.4fr);gap:12px;align-items:start}.shipment-list{display:grid;gap:8px}.shipment-list .shipment-row{width:100%;text-align:left;color:inherit;cursor:pointer}.shipment-list .shipment-row.active{border-color:#2563eb8c;background:#f5f9ff}.shipment-log-panel{min-width:0;display:grid;gap:8px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px}.shipment-log-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.shipment-log-head span{color:var(--muted);font-size:12px;font-weight:900}.shipment-log-panel code{display:block;padding:6px 8px;border-radius:6px;background:#f3f4f6;color:#334155;font-size:12px;overflow-wrap:anywhere;white-space:normal}.shipment-log-panel pre{min-height:180px;max-height:360px;overflow:auto;margin:0;padding:10px;border-radius:8px;background:#101820;color:#e5edf5;font-size:12px;line-height:1.55;white-space:pre-wrap}.ship-conversion-details{border:1px solid var(--line);border-radius:8px;padding:10px;background:#f8fafb}.ship-conversion-details summary{cursor:pointer;font-weight:800}.ship-conversion-details[open]{display:grid;gap:10px}.shipment-history{display:grid;gap:8px;margin-top:4px}.shipment-row{display:grid;gap:4px;padding:9px}.shipment-row.completed{border-left:4px solid #16a34a}.shipment-row.failed{border-left:4px solid #dc2626}.shipment-row.running{border-left:4px solid #2563eb}.shipment-row code,.shipment-result code{display:block;padding:5px 7px;border-radius:6px;background:#f3f4f6;color:#334155;font-size:12px;overflow-wrap:anywhere;white-space:normal}.shipment-result{display:grid;gap:6px;margin-top:12px;padding:10px;background:#f8fafb}.shipment-result span{color:var(--muted);font-size:12px;font-weight:800}.shipment-result small{display:inline-flex;align-items:center;gap:5px;color:#92400e}.data-add-modal{width:min(880px,calc(100vw - 28px))}.dataset-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:0;align-items:stretch;min-height:100vh}.dataset-sidebar,.viewer-panel,.side-panel{padding:16px}.dataset-sidebar{border-right:1px solid var(--line)}.dataset-actions{margin-bottom:14px;display:grid;gap:8px}.dataset-view-tabs.segmented-control{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:4px 0 10px}.dataset-view-tabs button{min-width:0;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap}.dataset-view-tabs button span{min-width:18px;padding:1px 5px;border-radius:999px;background:#64748b1f;color:var(--muted);font-size:11px;line-height:1.25;font-variant-numeric:tabular-nums}.dataset-view-tabs button.active span{background:#1472601f;color:var(--accent)}.dataset-view-tabs button .tab-star{min-width:0;padding:0;background:none;border-radius:0;font-size:13px;line-height:1}.dataset-list-tools{display:flex;align-items:center;justify-content:flex-end;margin:-2px 0 10px}.dataset-cleanup-link{min-height:24px;padding:0;font-size:12px}.dataset-sort-control{display:grid;gap:5px;margin-bottom:12px;color:var(--muted);font-size:12px;font-weight:700}.dataset-sort-control select{width:100%;border:1px solid var(--line-strong);border-radius:6px;background:#fff;color:var(--text);padding:8px 10px}.version-class-bars{display:grid;gap:4px;margin-top:7px;width:100%}.version-class-bar{display:grid;grid-template-columns:12px minmax(82px,1fr) minmax(78px,110px) 36px;align-items:center;gap:5px;color:var(--muted);font-size:12px}.version-class-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-bar{height:6px;border-radius:999px;background:#e8eef4;overflow:hidden}.mini-bar i{display:block;height:100%;border-radius:inherit}.version-class-bar b{color:var(--text);font-size:12px;justify-self:end;text-align:right;font-variant-numeric:tabular-nums}.source-choice{display:grid;gap:10px}.source-card{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);padding:14px;display:grid;gap:5px;text-align:left}.source-card:hover{border-color:#9eb8d0;background:#f8fbfd}.source-card strong{font-size:16px}.source-card span,.source-panel p{color:var(--muted);font-size:13px;line-height:1.55;margin:0}.source-panel{display:grid;gap:8px}.video-preview{display:grid;gap:8px;border-top:1px solid var(--border);padding-top:10px;margin-top:2px}.video-report{display:flex;flex-wrap:wrap;gap:6px}.report-chip{font-size:12px;padding:3px 9px;border-radius:999px;background:var(--surface-2, rgba(127, 127, 127, .12));border:1px solid var(--border);color:var(--muted)}.report-chip strong{color:var(--text)}.report-chip.kept{background:#22c55e24;border-color:#22c55e66;color:#16a34a}.report-chip.kept strong{color:#16a34a}.report-chip.drop{opacity:.85}.video-contact-sheet{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px;max-height:320px;overflow-y:auto;padding:2px}.video-contact-sheet figure{margin:0;display:grid;gap:2px}.video-contact-sheet img,.video-contact-sheet .thumb-missing{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:6px;border:1px solid var(--border);background:var(--surface-2, rgba(127, 127, 127, .12))}.video-contact-sheet figcaption{font-size:10px;color:var(--muted);text-align:center}.source-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.cvat-open-link{margin-left:auto;font-size:.82rem;font-weight:600;color:#2b6a96;text-decoration:none;white-space:nowrap;padding:3px 8px;border:1px solid #cfe0ee;border-radius:6px}.cvat-open-link:hover{background:#eef5fb}.section-head,.viewer-head,.modal-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}.modal-head h2,.source-panel h3{margin-bottom:2px}.modal-head p{margin:0}.status-pill{border:1px solid var(--line);border-radius:999px;padding:4px 9px;font-size:12px;font-weight:800}.status-pill.ok{border-color:#b8dccf;background:#f0faf6;color:var(--ok)}.status-pill.error{border-color:#efc4c9;background:#fff5f6;color:var(--danger)}.section-head.compact{align-items:center}.segmented-control{border:1px solid var(--line);border-radius:6px;background:var(--panel-muted);padding:3px;display:inline-flex;gap:2px;flex:0 0 auto}.segmented-control button{min-height:28px;border:0;border-radius:4px;background:transparent;color:var(--muted);padding:0 10px;font-weight:700}.segmented-control button.active{background:#fff;color:var(--text);box-shadow:0 1px 2px #0f172a14}h1,h2,h3,p{margin-top:0}h1{margin-bottom:4px;font-size:21px}h2{margin-bottom:4px;font-size:18px}.title-with-action{display:flex;align-items:center;gap:8px}.title-with-action h2{margin-bottom:0}.round-icon-button{width:28px;height:28px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);padding:0;display:inline-flex;align-items:center;justify-content:center}.round-icon-button:hover{border-color:#9eb8d0;background:#f8fbfd;color:var(--text)}.path-line{max-width:min(760px,62vw);margin:4px 0 0;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}h3{margin-bottom:8px;font-size:15px}p,.inline-help{color:var(--muted);font-size:13px;line-height:1.55}.inline-help{display:block;margin-top:5px}.linklike{background:none;border:none;padding:0;color:var(--accent, #2f7);font:inherit;font-size:12px;cursor:pointer;text-decoration:underline;display:inline-flex;align-items:center;gap:3px}.linklike:hover{opacity:.8}.linklike:disabled{opacity:.5;cursor:default}.eyebrow{margin-bottom:3px;color:var(--accent-2);font-size:12px;font-weight:700}.primary,.secondary{min-height:36px;border-radius:6px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:700}.primary{border:1px solid var(--accent);background:var(--accent);color:#fff}.full{width:100%}.secondary{border:1px solid var(--line);background:#fff;color:var(--text)}.secondary.small{min-height:30px;padding:0 9px;font-size:12px}.link-button{text-decoration:none;margin-top:8px}.danger-button{min-height:30px;border:1px solid #efc4c9;border-radius:6px;background:#fff5f6;color:var(--danger);padding:0 10px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:700}.danger-button:hover{background:#ffe9ec}.danger-button.small{min-height:30px;padding:0 9px;font-size:12px}.table-actions{display:flex;align-items:center;gap:6px;white-space:nowrap}.favorite-chip{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;white-space:nowrap;border:1px solid #e6c768;border-radius:999px;background:#fff8df;color:#835a00!important;padding:2px 7px;font-size:11px!important;font-weight:800}.favorite-chip>svg{flex:0 0 auto}.favorite-chip.latest-chip{border-color:#7dd3fc;background:#e0f2fe;color:#075985!important}.favorite-chip.hidden-chip{border-color:#cbd5e1;background:#f1f5f9;color:#475569!important}.favorite-chip.final-chip{border-color:#86efac;background:#dcfce7;color:#166534!important}.favorite-chip.approved-chip{border-color:#fbbf24;background:#fffbeb;color:#92400e!important}.favorite-button.active{border-color:#e6c768;background:#fff8df;color:#9a6a00}.favorite-button:disabled{cursor:default;opacity:.72}.round-icon-button.tiny{width:24px;height:24px}.field{display:grid;gap:5px;margin-bottom:8px;color:var(--muted);font-size:13px;font-weight:700}.field input,.field select,.field textarea,.toolbar select,.toolbar input{width:100%;border:1px solid var(--line-strong);border-radius:6px;background:#fff;color:var(--text);padding:8px 10px;min-width:0}.field-label-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.favorite-chip.inline-favorite{padding:2px 7px;font-size:11px}.select-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.select-box{border:1px solid var(--line);border-radius:8px;background:var(--panel-muted);padding:9px}.select-box-head,.mini-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.select-box-head span{color:var(--muted);font-size:12px;font-weight:700}.filter-toggle{display:flex;align-items:center;gap:6px;margin-bottom:8px;color:var(--muted);font-size:12px;font-weight:700;cursor:pointer}.filter-toggle input{margin:0;flex:0 0 auto}.mini-actions{justify-content:flex-start}.mini-actions .secondary{min-height:28px;padding:0 9px;font-size:12px}.check-list{max-height:260px;overflow:auto;display:grid;gap:6px}.merge-list{max-height:260px}.class-map-panel{border:1px solid var(--line);border-radius:8px;background:var(--panel-muted);padding:9px;margin:10px 0}.class-map-list{max-height:300px;overflow:auto;display:grid;gap:6px}.class-map-row{border:1px solid #e2e8ef;border-radius:6px;background:#fff;padding:7px 8px;display:grid;grid-template-columns:auto minmax(0,.9fr) minmax(0,1.1fr);gap:8px;align-items:center}.class-map-row.disabled-row{background:#eef2f6;opacity:.62}.class-map-row input[type=checkbox]{width:16px;height:16px;margin:0}.class-map-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px;font-weight:700}.class-map-row input[type=text]{width:100%;min-width:0;border:1px solid var(--line-strong);border-radius:6px;background:#fff;color:var(--text);padding:7px 9px}.class-map-row input[type=text]:disabled{background:#e4e9ef;color:#7b8794}.check-row{border:1px solid #e2e8ef;border-radius:6px;background:#fff;padding:7px 8px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:start}.check-row input{margin-top:3px}.check-row strong,.check-row small{display:block}.class-name-with-color{display:inline-flex!important;align-items:center;gap:8px}.class-name-with-color i{width:12px;height:12px;border:1px solid rgba(17,24,39,.18);border-radius:4px;flex:0 0 auto}.check-row small{color:var(--muted);font-size:12px;margin-top:2px}.compact-empty{padding:12px}.progress-box{border:1px solid #b8dccf;border-radius:8px;background:#f0faf6;padding:12px;margin-top:12px}.progress-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:4px}.progress-head span{color:var(--muted);font-size:12px;font-weight:700}.progress-box p{margin:0 0 10px;color:var(--muted);font-size:13px;line-height:1.5}.progress-bar{height:8px;border-radius:999px;background:#d6ebe4;overflow:hidden}.progress-bar span{display:block;width:0;height:100%;border-radius:inherit;background:var(--accent);transition:width .18s ease}.progress-bar.indeterminate span{width:38%;animation:progress-slide 1.2s ease-in-out infinite}.file-picker{width:100%;min-height:38px;border:1px solid var(--line-strong);border-radius:6px;background:#fff;color:var(--text);padding:0 10px;display:flex;align-items:center;font-weight:700;cursor:pointer}.file-picker input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.file-picker span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notice{border:1px solid var(--line);border-radius:6px;background:var(--panel-muted);color:var(--muted);padding:10px 12px;display:flex;align-items:center;gap:8px;margin:12px}.panel .notice,.settings-modal .notice,.dataset-sidebar .notice{margin:0 0 12px}.notice.ok,.notice.success{border-color:#b8dccf;background:#f0faf6;color:var(--ok)}.notice.subtle{border-color:#d8e1ea;background:#f8fafc;color:var(--muted)}.notice.error,.row-error{border-color:#efc4c9;background:#fff5f6;color:var(--danger)}.training-complete-toast{position:fixed;right:18px;bottom:18px;z-index:80;width:min(390px,calc(100vw - 32px));border:1px solid #b8dccf;border-radius:8px;background:radial-gradient(circle at 8% 10%,rgba(255,207,64,.18),transparent 28%),linear-gradient(180deg,#fffffffa,#f0faf6fa);box-shadow:0 12px 32px #0f172a29;padding:14px 42px 14px 14px;display:grid;gap:4px;overflow:hidden}.training-complete-toast .icon-button{position:absolute;top:8px;right:8px}.training-complete-toast strong{font-size:17px}.training-complete-toast span{color:var(--accent);font-weight:900}.training-complete-toast small{color:var(--muted)}.training-failed-toast{position:fixed;right:18px;bottom:18px;z-index:80;width:min(390px,calc(100vw - 32px));border:1px solid #e0b6a3;border-radius:8px;background:radial-gradient(circle at 8% 10%,rgba(193,110,58,.16),transparent 28%),linear-gradient(180deg,#fffffffa,#faf2ebfa);box-shadow:0 12px 32px #0f172a29;padding:14px 42px 14px 14px;display:grid;gap:4px;overflow:hidden}.training-failed-toast .icon-button{position:absolute;top:8px;right:8px}.training-failed-toast strong{font-size:17px;color:#a8502a}.training-failed-toast span{color:#8a4b2a;font-weight:900}.training-failed-toast small{color:var(--muted)}.confetti-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:79;pointer-events:none;overflow:hidden}.plant-celebration{position:fixed;left:0;right:0;bottom:0;height:62vh;z-index:78;pointer-events:none;overflow:hidden;animation:plant-celebration-life 9s ease both}.grow-plant{position:absolute;bottom:-2px;transform-origin:bottom center;animation:plant-reveal 1.45s cubic-bezier(.16,.84,.3,1) both}.grow-plant .plant-svg{display:block;transform-origin:bottom center;animation:plant-rise 1.45s cubic-bezier(.16,.84,.3,1) both,plant-sway 4.4s ease-in-out 1.5s infinite}.grow-plant .bloom{transform-origin:32px 50px;animation:bloom-pop .6s cubic-bezier(.2,1.4,.4,1) 1.15s both}@keyframes plant-reveal{0%{clip-path:inset(100% 0 0 0);opacity:0}14%{opacity:1}to{clip-path:inset(0 0 0 0);opacity:1}}@keyframes plant-rise{0%{transform:scaleY(.5) scaleX(.9)}62%{transform:scaleY(1.06) scaleX(1.01)}to{transform:scaleY(1) scaleX(1)}}@keyframes plant-sway{0%,to{transform:rotate(-1.7deg)}50%{transform:rotate(1.7deg)}}@keyframes bloom-pop{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes plant-celebration-life{0%{opacity:0}3%{opacity:1}86%{opacity:1}to{opacity:0}}.leaf-fall{position:fixed;top:0;right:0;bottom:0;left:0;z-index:79;pointer-events:none;overflow:hidden;animation:plant-celebration-life 9s ease both}.leaf-fall .leaf{position:absolute;top:0;will-change:transform;animation-name:leaf-drop;animation-timing-function:linear;animation-fill-mode:both}.leaf-fall .leaf-inner{display:block;will-change:transform;animation-name:leaf-sway;animation-timing-function:ease-in-out;animation-iteration-count:infinite}.leaf-fall .leaf svg{display:block}@keyframes leaf-drop{0%{transform:translateY(-16vh);opacity:0}8%{opacity:1}88%{opacity:1}to{transform:translateY(116vh);opacity:0}}@keyframes leaf-sway{0%,to{transform:translate(-12px) rotate(-26deg)}50%{transform:translate(12px) rotate(26deg)}}.confetti-screen i{position:absolute;top:-16px;left:calc(var(--x, 50) * 1%);width:7px;height:12px;border-radius:2px;background:var(--c, #f4c542);transform:rotate(var(--r, 0deg));animation:confetti-fall 1.9s ease-in-out infinite;animation-delay:var(--d, 0s);opacity:.88}.confetti-screen i:nth-child(1){--x: 3;--c: #f4c542;--r: 18deg;--d: 0s}.confetti-screen i:nth-child(2){--x: 7;--c: #2fbf71;--r: 44deg;--d: .12s}.confetti-screen i:nth-child(3){--x: 11;--c: #2d7fe8;--r: 72deg;--d: .22s}.confetti-screen i:nth-child(4){--x: 15;--c: #ef4444;--r: 21deg;--d: .05s}.confetti-screen i:nth-child(5){--x: 19;--c: #a855f7;--r: 55deg;--d: .28s}.confetti-screen i:nth-child(6){--x: 23;--c: #14b8a6;--r: 12deg;--d: .18s}.confetti-screen i:nth-child(7){--x: 27;--c: #f97316;--r: 80deg;--d: .33s}.confetti-screen i:nth-child(8){--x: 31;--c: #22c55e;--r: 31deg;--d: .08s}.confetti-screen i:nth-child(9){--x: 35;--c: #3b82f6;--r: 63deg;--d: .25s}.confetti-screen i:nth-child(10){--x: 39;--c: #f43f5e;--r: 38deg;--d: .16s}.confetti-screen i:nth-child(11){--x: 43;--c: #eab308;--r: 5deg;--d: .38s}.confetti-screen i:nth-child(12){--x: 47;--c: #8b5cf6;--r: 88deg;--d: .2s}.confetti-screen i:nth-child(13){--x: 51;--c: #06b6d4;--r: 24deg;--d: .31s}.confetti-screen i:nth-child(14){--x: 55;--c: #fb7185;--r: 77deg;--d: .44s}.confetti-screen i:nth-child(15){--x: 59;--c: #84cc16;--r: 49deg;--d: .5s}.confetti-screen i:nth-child(16){--x: 63;--c: #facc15;--r: 33deg;--d: .46s}.confetti-screen i:nth-child(17){--x: 67;--c: #60a5fa;--r: 68deg;--d: .41s}.confetti-screen i:nth-child(18){--x: 71;--c: #34d399;--r: 17deg;--d: .54s}.confetti-screen i:nth-child(19){--x: 75;--c: #f4c542;--r: 58deg;--d: .1s}.confetti-screen i:nth-child(20){--x: 79;--c: #2fbf71;--r: 24deg;--d: .34s}.confetti-screen i:nth-child(21){--x: 83;--c: #2d7fe8;--r: 92deg;--d: .6s}.confetti-screen i:nth-child(22){--x: 87;--c: #ef4444;--r: 41deg;--d: .48s}.confetti-screen i:nth-child(23){--x: 91;--c: #a855f7;--r: 75deg;--d: .18s}.confetti-screen i:nth-child(24){--x: 95;--c: #14b8a6;--r: 32deg;--d: .56s}.confetti-screen i:nth-child(25){--x: 5;--c: #f97316;--r: 100deg;--d: .64s}.confetti-screen i:nth-child(26){--x: 14;--c: #22c55e;--r: 51deg;--d: .72s}.confetti-screen i:nth-child(27){--x: 28;--c: #3b82f6;--r: 83deg;--d: .68s}.confetti-screen i:nth-child(28){--x: 42;--c: #f43f5e;--r: 18deg;--d: .74s}.confetti-screen i:nth-child(29){--x: 57;--c: #eab308;--r: 67deg;--d: .8s}.confetti-screen i:nth-child(30){--x: 69;--c: #8b5cf6;--r: 38deg;--d: .76s}.confetti-screen i:nth-child(31){--x: 82;--c: #06b6d4;--r: 94deg;--d: .84s}.confetti-screen i:nth-child(32){--x: 94;--c: #fb7185;--r: 47deg;--d: .88s}.confetti-screen i:nth-child(33){--x: 21;--c: #84cc16;--r: 79deg;--d: .92s}.confetti-screen i:nth-child(34){--x: 49;--c: #facc15;--r: 23deg;--d: .96s}.confetti-screen i:nth-child(35){--x: 73;--c: #60a5fa;--r: 108deg;--d: 1s}.confetti-screen i:nth-child(36){--x: 98;--c: #34d399;--r: 37deg;--d: 1.04s}.row-error{border-radius:6px;padding:6px 8px;font-size:12px}.project-list,.version-list{display:grid;gap:8px}.dashboard-page{display:grid;gap:12px}.dashboard-metrics{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px;margin-bottom:12px}.dashboard-metrics div,.dashboard-card,.dashboard-dataset-row{border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 1px 3px #1018280d}.dashboard-metrics div{padding:12px;display:grid;gap:4px}.dashboard-metrics span,.dashboard-dataset-row span{color:var(--muted);font-size:12px}.dashboard-metrics strong{font-size:26px;line-height:1;color:#15803d;font-variant-numeric:tabular-nums}.dashboard-metrics div{transition:box-shadow .15s ease,transform .15s ease}.dashboard-metrics div:hover{box-shadow:0 6px 16px #1018281a;transform:translateY(-1px)}.dashboard-storage-row{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px;margin-bottom:12px}.dashboard-storage-row .disk-usage-summary{grid-column:1 / -1;margin:0}.dashboard-favorite-models{border:1px solid var(--line);border-radius:8px;background:var(--panel-muted);padding:12px;display:grid;gap:10px;margin-bottom:12px}.dashboard-favorite-model-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.dashboard-favorite-model-card{position:relative;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden;display:flex;flex-direction:column;min-width:0;box-shadow:0 1px 3px #1018280f;transition:box-shadow .15s ease,transform .15s ease}.dashboard-favorite-model-card:after{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:hsl(var(--accent-h, 210) 64% 48%);z-index:3}.dashboard-favorite-model-card:hover{box-shadow:0 10px 24px #10182821;transform:translateY(-2px)}.dashboard-favorite-model-card.is-best{border-color:#f2ba2c;box-shadow:0 1px 3px #1018280f,0 0 0 1px #f4be348c}.dfm-cover{position:relative;height:92px;background-image:linear-gradient(135deg,hsl(var(--accent-h, 210) 56% 52%),hsl(calc(var(--accent-h, 210) + 38) 60% 42%));background-size:cover;background-position:center}.dfm-cover.has-thumb{background-color:#1f2937}.dfm-star{position:absolute;top:9px;left:9px;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:#fff;color:#f5a623;box-shadow:0 1px 4px #00000059}.dfm-best{position:absolute;top:11px;left:43px;display:inline-flex;align-items:center;gap:3px;padding:3px 8px;border-radius:999px;background:#f5b719;color:#3a2a02;font-size:10px;font-weight:800;letter-spacing:.03em;box-shadow:0 1px 3px #00000047}.dfm-best>svg{flex:0 0 auto}.dfm-score{position:absolute;bottom:9px;right:9px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:800;color:#fff;background:#0f172ab8;box-shadow:0 1px 3px #00000040}.dfm-score.q-good{background:var(--ok)}.dfm-score.q-ok{background:#d97706}.dfm-score.q-low{background:#dc2626}.dfm-score.q-none{background:#6b7280}.dfm-body{display:grid;gap:8px;padding:10px 12px 12px;min-width:0}.dfm-name{font-size:13.5px;line-height:1.3;overflow-wrap:anywhere;color:var(--text)}.dfm-tags{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.dfm-tag{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:3px 8px;border-radius:6px;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dfm-tag>svg{flex:0 0 auto}.dfm-dataset{background:hsl(var(--accent-h, 210) 60% 96%);color:hsl(var(--accent-h, 210) 48% 30%);border:1px solid hsl(var(--accent-h, 210) 50% 84%)}.dfm-status{background:var(--panel-muted);color:var(--muted);border:1px solid var(--line)}.dfm-actions{display:flex;gap:6px}.dfm-qr-btn{flex:1 1 auto;width:100%}.dfm-report-btn{flex:0 0 auto;color:#6b54c9;border-color:#d9d2f4;background:#f6f4fe}.dfm-report-btn:hover{background:#efeafd}.dashboard-favorite-qr-box{display:grid;gap:8px;min-width:0}.dashboard-favorite-qr{width:min(100%,160px);aspect-ratio:1;justify-self:center;border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px}.dashboard-favorite-url{color:var(--muted);font-size:11px;overflow-wrap:anywhere}.dashboard-favorite-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.dashboard-favorite-actions .button-link,.dashboard-favorite-actions button{width:100%}.dashboard-favorite-model-card.is-clickable{cursor:pointer}.dashboard-favorite-model-card.is-clickable:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}.dashboard-active-runs{border:1px solid hsl(43 60% 80%);border-radius:12px;background:linear-gradient(180deg,#fffdf5,#fbfffd);padding:12px;display:grid;gap:10px;margin-bottom:12px}.dashboard-active-runs>.section-head h2{display:inline-flex;align-items:center;gap:7px}.count-pill{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:#f0b319;color:#3a2a02;font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}.dashboard-active-run-list{display:grid;gap:10px}.active-run-spotlight{position:relative;overflow:hidden;border:1px solid rgba(239,190,89,.72);border-radius:10px;background:radial-gradient(circle at 12% 0%,rgba(255,255,255,.92),transparent 24%),radial-gradient(circle at 90% 6%,rgba(101,194,235,.18),transparent 34%),linear-gradient(180deg,#fffceff5,#effaf4f5),#fff8e7;padding:14px 16px;display:grid;gap:8px;box-shadow:inset 0 1px #ffffffc7}.active-run-spotlight.with-thumbnail:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:var(--thumb-url);background-size:cover;background-position:center;opacity:.1;pointer-events:none;z-index:0}.active-run-spotlight>*{position:relative;z-index:1}.ars-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.ars-title{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:100%;border:none;background:transparent;padding:0;font-size:16px;font-weight:800;color:var(--text);cursor:pointer;overflow-wrap:anywhere;text-align:left}.ars-title:hover{color:var(--accent);text-decoration:underline}.ars-title>svg{flex:0 0 auto;color:#15803d}.ars-status{flex:0 0 auto;padding:3px 10px;border-radius:999px;background:#f0b319;color:#3a2a02;font-size:11px;font-weight:800}.ars-sub{color:var(--muted);font-size:12.5px}.ars-progress{height:10px;border-radius:999px;background:#0f172a14;overflow:hidden}.ars-progress>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#15803d,#22c55e);transition:width .4s ease}.ars-progress-label{color:var(--text);font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums}.ars-stats{display:flex;flex-wrap:wrap;gap:8px}.ars-stat{display:inline-flex;align-items:baseline;gap:6px;padding:4px 10px;border-radius:999px;font-size:13px;font-weight:800;font-variant-numeric:tabular-nums;border:1px solid var(--line);background:#fff}.ars-stat b{font-size:11px;font-weight:700;color:var(--muted)}.ars-stat-map{border-color:#bfe3d2;background:#f0faf5;color:#15803d}.ars-stat-loss{border-color:#f3cfd3;background:#fdf3f4;color:#b4232e}.ars-head-actions{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto}.ars-log-btn{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--text);padding:3px 8px;font-size:11px;font-weight:700;cursor:pointer}.ars-log-btn:hover{background:var(--panel-muted)}.log-live{color:#16a34a;font-size:11px;font-weight:800;animation:logLivePulse 1.4s ease-in-out infinite}@keyframes logLivePulse{0%,to{opacity:1}50%{opacity:.35}}.training-failed-log-btn{margin-top:8px}.model-log-tab{display:grid;gap:6px}.log-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.log-legend{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;font-weight:700}.log-legend .le{width:10px;height:10px;border-radius:3px;margin-left:6px}.log-legend .le-err{background:#f43f5e}.log-legend .le-warn{background:#f59e0b}.log-line{white-space:pre-wrap;word-break:break-word}.log-line.is-err{color:#fda4af;background:#f43f5e29}.log-line.is-warn{color:#fcd34d}.model-name-line{display:inline-flex;align-items:center;gap:6px;min-width:0}.name-edit-btn{flex:0 0 auto;opacity:.55}.name-edit-btn:hover{opacity:1}.project-title-line{display:inline-flex;align-items:center;gap:8px}.title-edit-btn{opacity:.5;color:var(--muted)}.title-edit-btn:hover{opacity:1;color:var(--accent)}.model-download-control{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:8px;background:var(--panel-muted);padding:4px 6px 4px 10px;color:var(--muted)}.download-format-select{border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--text);padding:4px 6px;font-size:12px;font-weight:700;min-height:30px}.download-format-select:disabled{opacity:.6}.model-download-control .primary.small{border:1px solid var(--accent);background:var(--accent);color:#fff}.download-hint{display:block;margin-top:4px;color:var(--muted);font-size:11px}.ship-truck-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5000;pointer-events:none;overflow:hidden}.ship-road{position:absolute;left:0;right:0;bottom:16vh;height:3px;background:linear-gradient(90deg,transparent,rgba(100,116,139,.45),transparent);animation:shipRoad 2.6s ease-out forwards}@keyframes shipRoad{0%,to{opacity:0}18%,82%{opacity:1}}.ship-truck{position:absolute;bottom:16vh;left:-28vw;display:inline-flex;align-items:flex-end;gap:10px;white-space:nowrap;filter:drop-shadow(0 10px 8px rgba(0,0,0,.22));animation:shipTruckDrive 2.5s cubic-bezier(.45,.05,.3,1) forwards}@keyframes shipTruckDrive{0%{left:-28vw}to{left:128vw}}.ship-truck-emoji{font-size:clamp(64px,13vw,170px);line-height:1;transform:scaleX(-1);animation:shipTruckBob .5s ease-in-out infinite}@keyframes shipTruckBob{0%,to{transform:scaleX(-1) translateY(0)}50%{transform:scaleX(-1) translateY(-7px)}}.ship-truck-tag{margin-bottom:1.3em;padding:6px 12px;border-radius:999px;background:var(--accent);color:#fff;font-weight:800;font-size:clamp(13px,1.6vw,18px);box-shadow:0 4px 12px #0003}@media(prefers-reduced-motion:reduce){.ship-truck{animation-duration:1.6s}.ship-truck-emoji{animation:none}}.ship-fall{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.ship-fall-item{position:absolute;top:-8vh;font-size:clamp(22px,3vw,40px);animation-name:ship-fall-drop;animation-timing-function:cubic-bezier(.3,.1,.5,1);animation-iteration-count:1;animation-fill-mode:forwards}@keyframes ship-fall-drop{0%{transform:translateY(0) rotate(0);opacity:0}10%{opacity:1}to{transform:translateY(118vh) rotate(220deg);opacity:1}}@media(prefers-reduced-motion:reduce){.ship-fall-item{animation:none;display:none}}.ship-complete-toast{position:fixed;left:50%;top:20px;transform:translate(-50%);z-index:4600;display:flex;align-items:center;gap:12px;padding:13px 22px;border-radius:14px;background:linear-gradient(180deg,#ecfdf3,#fff);border:1px solid #bfe3d2;box-shadow:0 16px 40px #10182833;animation:sct-in .3s ease-out}@keyframes sct-in{0%{opacity:0;transform:translate(-50%,-14px)}to{opacity:1;transform:translate(-50%)}}.ship-complete-toast .sct-icon{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#d6f0e1;color:#15803d;flex:0 0 auto}.ship-complete-toast strong{display:block;font-size:14px;color:#15803d}.ship-complete-toast span{font-size:12px;color:var(--muted)}.class-metric-table .cm-th{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.class-metric-table .cm-th:hover,.class-metric-table .cm-th.active{color:var(--accent)}.class-metric-table td.cm-num{position:relative}.class-metric-table td.cm-num .cm-bar{position:absolute;left:0;top:3px;bottom:3px;z-index:0;border-radius:4px;background:#14726029}.class-metric-table td.cm-num .cm-bar.strong{background:#1472604d}.class-metric-table td.cm-num .cm-bar.support{background:#235aa629}.class-metric-table td.cm-num .cm-val{position:relative;z-index:1;font-variant-numeric:tabular-nums}.model-evaluation-detail{position:relative}.model-evaluation-detail.has-thumb:before{content:"";position:absolute;top:-12px;right:-12px;bottom:-12px;left:-12px;z-index:0;pointer-events:none;background-image:linear-gradient(180deg,#fffffff7,#ffffffed),var(--med-thumb);background-size:cover;background-position:center;opacity:.5}.model-evaluation-detail.has-thumb>*{position:relative;z-index:1}@media(prefers-reduced-motion:reduce){.ship-complete-toast{animation:none}}.ship-status-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap;border:1px solid transparent}.ship-status-badge.tone-ok{background:#e7f6ee;color:#15803d;border-color:#bfe3d2}.ship-status-badge.tone-bad{background:#fdecec;color:#b4232e;border-color:#f3cfd3}.ship-status-badge.tone-run{background:#e8f0fe;color:#1d4ed8;border-color:#c7d7f7}.ship-status-badge.tone-muted{background:#f1f5f9;color:#64748b;border-color:#e2e8f0}.ship-console-panel{padding:12px}.ship-console{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:12px;align-items:start}.ship-history{display:grid;gap:8px;max-height:72vh;overflow:auto}.ship-history-row{position:relative;overflow:hidden;text-align:left;display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-left:4px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;transition:box-shadow .15s ease,transform .15s ease}.ship-history-row.has-thumb:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background-image:linear-gradient(90deg,#fffffff0,#ffffffc7 44%,#ffffff6b),var(--shr-thumb);background-size:cover;background-position:center;opacity:.9}.ship-history-row.active.has-thumb:before{background-image:linear-gradient(90deg,#fffffff5,#ffffffd6 44%,#ffffff85),var(--shr-thumb)}.ship-history-row>*{position:relative;z-index:1}.shr-model{display:flex;align-items:center;gap:6px;min-width:0;font-size:12px;color:var(--text)}.shr-model>svg{flex:0 0 auto;color:#15803d}.shr-model-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:700}.shr-fav{flex:0 0 auto;color:#f5a623}.shr-map{flex:0 0 auto;font-size:10.5px;font-weight:800;color:#15803d;background:#ecfdf3;border:1px solid #bfe3d2;border-radius:999px;padding:1px 7px;font-variant-numeric:tabular-nums}.shr-dataset{display:flex;align-items:center;gap:6px;min-width:0;font-size:11.5px;color:var(--muted)}.shr-dataset>svg{flex:0 0 auto;color:#b07a22}.shr-ds-ver{flex:0 0 auto}.ship-dest-chips{display:flex;flex-wrap:wrap;gap:8px}.ship-dest-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid var(--line);background:#fff}.ship-dest-chip.tone-ok{border-color:#bfe3d2;background:#f1faf4;color:#15803d}.ship-dest-chip.tone-bad{border-color:#f3cfd3;background:#fdf3f4;color:#b4232e}.ship-dest-chip strong{color:var(--text)}.ship-dest-chip .muted{font-weight:400}.ship-progress-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:4500;display:grid;place-items:center;background:#0f172a52;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.ship-progress-card{display:grid;justify-items:center;gap:10px;padding:24px 32px;border-radius:16px;background:#fff;box-shadow:0 20px 50px #0000004d;min-width:280px;max-width:90vw}.ship-progress-card strong{font-size:15px;text-align:center;overflow-wrap:anywhere}.ship-progress-truck{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;color:#15803d;background:radial-gradient(circle at 50% 40%,#eafaf0,#d6f0e1);animation:spp-bob .6s ease-in-out infinite}@keyframes spp-bob{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-6px) rotate(1deg)}}.ship-progress-stage{color:var(--muted);font-size:12.5px}.ship-progress-bar{width:100%;height:6px;border-radius:999px;background:#e2e8f0;overflow:hidden}.ship-progress-bar>i{display:block;height:100%;width:40%;border-radius:999px;background:linear-gradient(90deg,#15803d,#22c55e);animation:spp-slide 1.2s ease-in-out infinite}@keyframes spp-slide{0%{transform:translate(-120%)}to{transform:translate(320%)}}@media(prefers-reduced-motion:reduce){.ship-progress-truck,.ship-progress-bar>i{animation:none}}.shr-icon{flex:0 0 auto;width:32px;height:32px;border-radius:9px;display:grid;place-items:center}.shr-icon.lg{width:38px;height:38px;border-radius:10px}.shr-icon.tone-ok{background:#e7f6ee;color:#15803d}.shr-icon.tone-bad{background:#fdecec;color:#b4232e}.shr-icon.tone-run{background:#e8f0fe;color:#1d4ed8}.shr-icon.tone-muted{background:#f1f5f9;color:#64748b}.shr-avatar{position:relative;flex:0 0 auto;width:76px;height:76px;border-radius:12px;background-size:cover;background-position:center;display:grid;place-items:center}.shr-avatar.tone-ok{background-color:#e7f6ee;color:#15803d}.shr-avatar.tone-bad{background-color:#fdecec;color:#b4232e}.shr-avatar.tone-run{background-color:#e8f0fe;color:#1d4ed8}.shr-avatar.tone-muted{background-color:#f1f5f9;color:#64748b}.shr-avatar.has-thumb{box-shadow:inset 0 0 0 1px #0000001a}.shr-avatar-badge{position:absolute;right:-4px;bottom:-4px;width:23px;height:23px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 1px 3px #00000047}.shr-avatar.tone-ok .shr-avatar-badge{color:#15803d}.shr-avatar.tone-bad .shr-avatar-badge{color:#b4232e}.shr-avatar.tone-run .shr-avatar-badge{color:#1d4ed8}.shr-avatar.tone-muted .shr-avatar-badge{color:#64748b}.shr-content{display:grid;gap:4px;min-width:0}.shr-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.ship-history-row:hover{box-shadow:0 4px 12px #10182814;transform:translateY(-1px)}.ship-history-row.active{box-shadow:0 0 0 2px #2563eb33}.ship-history-row.tone-ok{border-left-color:#16a34a}.ship-history-row.tone-bad{border-left-color:#dc2626}.ship-history-row.tone-run{border-left-color:#2563eb}.ship-history-row.tone-muted{border-left-color:#94a3b8}.shr-name{font-weight:800;font-size:13px;overflow-wrap:anywhere}.shr-meta{color:var(--muted);font-size:11px;display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}.ship-detail{display:grid;gap:12px;min-width:0}.ship-banner{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:10px;padding:14px 16px;display:grid;gap:8px;min-height:104px;align-content:center}.ship-banner.has-thumb:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background-image:linear-gradient(90deg,#fffffff0,#ffffffb3 45%,#ffffff52),var(--ship-thumb);background-size:cover;background-position:center}.ship-banner>*{position:relative;z-index:1}.ship-banner.tone-ok{background:linear-gradient(180deg,#f0faf5,#fff);border-color:#bfe3d2}.ship-banner.tone-bad{background:linear-gradient(180deg,#fdf3f4,#fff);border-color:#f3cfd3}.ship-banner.tone-run{background:linear-gradient(180deg,#eff4fe,#fff);border-color:#c7d7f7}.ship-banner.tone-muted{background:var(--panel-muted)}.ship-banner-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ship-banner-main strong{font-size:16px;overflow-wrap:anywhere}.ship-banner-meta{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--muted);font-size:12px}.ship-banner-meta span{display:inline-flex;align-items:center;gap:4px}.ship-banner-error{display:flex;align-items:center;gap:6px;color:#b4232e;font-size:12px;background:#fdecec;border:1px solid #f3cfd3;border-radius:6px;padding:6px 8px;overflow-wrap:anywhere}.ship-section{display:grid;gap:8px}.ship-section>h4{margin:0;display:inline-flex;align-items:center;gap:6px;font-size:13px}.ship-section>h4 .muted{font-weight:400}.ship-dest-card{border:1px solid var(--line);border-left:4px solid var(--line);border-radius:8px;padding:10px 12px;display:grid;gap:8px;background:#fff}.ship-dest-card.tone-ok{border-left-color:#16a34a}.ship-dest-card.tone-bad{border-left-color:#dc2626;background:snow}.sdc-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sdc-head strong{font-size:13px}.sdc-kind{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:800}.sdc-kind.kind-r2{background:#eef2ff;color:#4338ca}.sdc-kind.kind-local{background:#ecfeff;color:#0e7490}.sdc-files{display:grid;gap:5px}.sdc-file{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--panel-muted);min-width:0}.sdc-file-type{flex:0 0 auto;font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;background:#fff;border:1px solid var(--line);white-space:nowrap}.sdc-file.kind-pt .sdc-file-type{color:#b45309;border-color:#fcd9a8;background:#fffaf0}.sdc-file.kind-onnx .sdc-file-type{color:#5b21b6;border-color:#ddd0f7;background:#faf7ff}.sdc-file.kind-openvino .sdc-file-type{color:#0e7490;border-color:#bce3ea;background:#f2fcfd}.sdc-file.kind-dataset .sdc-file-type{color:#15803d;border-color:#bfe3d2;background:#f1faf4}.sdc-file.kind-bundle .sdc-file-type{color:#1d4ed8;border-color:#c7d7f7;background:#f2f6fe}.sdc-file.kind-page .sdc-file-type,.ship-url-row.kind-page .sdc-file-type{color:#7c2d12;border-color:#fed7aa;background:#fff7ed}.sdc-file-url{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11.5px;color:#1d4ed8;text-decoration:none;background:#fff;padding:3px 7px;border-radius:5px;border:1px solid var(--line)}.sdc-file-url:hover{text-decoration:underline}.sdc-file-local{flex:1 1 auto;font-size:11.5px}.ship-url-list{display:grid;gap:6px}.ship-url-row{display:flex;align-items:center;gap:8px;padding:7px 8px;border:1px solid var(--line);border-radius:7px;background:var(--panel-muted);min-width:0}.ship-url-text{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:#1d4ed8;text-decoration:none;background:#fff;padding:5px 9px;border-radius:6px;border:1px solid var(--line)}.ship-url-text:hover{text-decoration:underline;border-color:#c7d7f7}.ship-downloads{display:flex;flex-wrap:wrap;gap:6px}.ship-dl-chip{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:999px;padding:3px 6px 3px 10px;background:#fff;font-size:12px;font-weight:700}.ship-dl-chip a{display:inline-flex;align-items:center;gap:5px;text-decoration:none;color:var(--text)}.ship-qa{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;font-size:12px;border:1px solid var(--line)}.ship-qa.tone-ok{background:#f1faf4;border-color:#bfe3d2;color:#15803d}.ship-qa.tone-muted{background:var(--panel-muted);color:var(--muted)}.ship-log-section .log-pre{max-height:46vh;margin:0}.ship-running-toast{position:fixed;right:22px;bottom:22px;z-index:4000;display:flex;align-items:center;gap:12px;padding:12px 18px 12px 14px;border-radius:14px;background:#fff;border:1px solid #c7d7f7;box-shadow:0 14px 36px #1018282e;max-width:360px;animation:ship-toast-in .25s ease-out}@keyframes ship-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.ship-running-truck{width:60px;height:60px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;color:#1d4ed8;background:radial-gradient(circle at 50% 40%,#eaf1fe,#d6e4fb);animation:ship-bob .6s ease-in-out infinite}.ship-running-truck>svg{width:32px;height:32px}@keyframes ship-bob{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-4px) rotate(2deg)}}.ship-running-text{display:grid;gap:2px;min-width:0}.ship-running-text strong{font-size:13.5px}.ship-running-text .muted{font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ship-history-row.tone-run{animation:ship-row-pulse 1.5s ease-in-out infinite}@keyframes ship-row-pulse{0%,to{box-shadow:0 0 #2563eb00}50%{box-shadow:0 0 0 2px #2563eb38}}.ship-banner.tone-run .shr-icon>svg{animation:ship-drive .7s ease-in-out infinite}@keyframes ship-drive{0%,to{transform:translate(0)}50%{transform:translate(2px) translateY(-1px)}}@media(prefers-reduced-motion:reduce){.ship-running-truck,.ship-history-row.tone-run,.ship-banner.tone-run .shr-icon>svg{animation:none}}.ship-rc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.ship-rc-card{position:relative;overflow:hidden;display:flex;align-items:center;gap:10px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;text-align:left;min-width:0;transition:box-shadow .15s ease,transform .15s ease,border-color .15s ease}.ship-rc-card.has-thumb:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background-image:linear-gradient(90deg,#fffffff2,#fffc 46%,#ffffff6b),var(--rc-thumb);background-size:cover;background-position:center;opacity:.92}.ship-rc-card>*{position:relative;z-index:1}.ship-rc-card:hover{box-shadow:0 6px 16px #1018281a;transform:translateY(-1px);border-color:var(--line-strong)}.ship-rc-thumb{flex:0 0 auto;width:64px;height:64px;border-radius:8px;background-size:cover;background-position:center;display:grid;place-items:center;color:#fff}.ship-rc-thumb.model{background-color:#15803d;background-image:linear-gradient(135deg,#1f9d57,#0f6b3a)}.ship-rc-thumb.dataset{background-color:#b07a22;background-image:linear-gradient(135deg,#c9912f,#8f5f17)}.ship-rc-body{display:grid;gap:3px;min-width:0;flex:1 1 auto}.ship-rc-body strong{font-size:13.5px;overflow-wrap:anywhere;line-height:1.25}.ship-rc-kind{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:800;width:fit-content;padding:1px 7px;border-radius:999px}.ship-rc-kind.model{background:#ecfdf3;color:#15803d}.ship-rc-kind.dataset{background:#fdf6e9;color:#92600f}.ship-rc-meta{display:flex;flex-wrap:wrap;gap:4px 10px;color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums;align-items:center}.ship-rc-arrow{flex:0 0 auto;color:var(--muted)}.ship-rc-reports{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px}.ship-rc-reports-label{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:12px;font-weight:700}.ship-rc-report-link{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;cursor:pointer;background:#f6f4fe;color:#6b54c9;border:1px solid #ddd0f7;font-size:12px;font-weight:700}.ship-rc-report-link:hover{background:#efeafd}@media(max-width:900px){.ship-console{grid-template-columns:1fr}.ship-history{max-height:none}}.ars-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px;margin-top:2px}.ars-chart h4{margin:0 0 4px;display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--muted)}.dashboard-grid{display:grid;grid-template-columns:minmax(320px,1fr) minmax(320px,1fr);gap:12px}.dashboard-grid.single{grid-template-columns:1fr}.dashboard-card{padding:12px;min-width:0}.dashboard-dataset-list{display:grid;gap:8px}.dashboard-dataset-row{padding:9px 10px;display:grid;gap:3px}.dashboard-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.list-row,.version-row{width:100%;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--text);padding:10px;display:grid;gap:8px;text-align:left}.version-row{position:relative;overflow:hidden}.version-row>*{position:relative;z-index:1}.version-row.with-thumbnail:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(90deg,#fffffff2,#ffffffd1,#ffffff9e),var(--thumb-url);background-size:cover;background-position:center;opacity:.72;pointer-events:none}.list-row.selectable{cursor:pointer}.list-row.selectable:hover{border-color:#9eb8d0;background:#f8fbfd}.row-main{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.list-row.active,.version-row.active{border-color:#82bdae;background:#f3fbf8}.list-row strong,.version-row strong{display:block}.version-title-line{display:flex;align-items:flex-start;justify-content:flex-start;flex-wrap:wrap;gap:6px}.version-meta-stack{display:grid;gap:2px}.version-kind{color:var(--text)!important;font-size:14px!important;font-weight:800}.version-id-line,.id-inline{color:var(--muted);font-size:12px;font-weight:700}.version-id-line{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.version-delta-row{border:1px solid #dbe5ed;border-radius:6px;background:#f8fafce0;padding:5px 7px;display:grid;gap:2px}.version-delta-row.changed{border-color:#9bd4b6;background:#ecfdf5e6}.version-delta-row span{color:var(--muted)!important;font-size:11px!important;font-weight:700}.version-delta-row b{color:var(--text);font-size:12px}.version-delta-row small{color:var(--muted);font-size:11px;line-height:1.3}.dataset-lineage-section{margin-top:0;margin-bottom:10px}.lineage-head-toggle,.collapsible-title{cursor:pointer;-webkit-user-select:none;user-select:none}.lineage-head-toggle:hover h3,.collapsible-title:hover h3{color:var(--accent, #1f6feb)}.collapsible-title h3{display:inline-flex;align-items:center;gap:6px}.workflow-section.collapsed,.distribution-panel.collapsed{padding-bottom:6px}.dataset-lineage-section.collapsed{padding:5px 12px}.dataset-lineage-section.collapsed .section-head{margin-bottom:0;align-items:center}.dataset-lineage-section.collapsed h3{font-size:14px}.dataset-lineage-section.collapsed p{font-size:12px;margin-top:1px}.lineage-tree{border:1px solid #dbe5ed;border-radius:6px;background:#f8fafc;padding:8px;overflow-x:auto}.lineage-tree ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}.lineage-tree li ul{margin-top:6px}.lineage-node{--depth: 0;width:100%;min-width:520px;border:1px solid #dbe5ed;border-radius:6px;background:#fff;color:var(--text);padding:8px 10px 8px calc(10px + (var(--depth) * 24px));display:grid;grid-template-columns:18px minmax(220px,1fr) minmax(150px,auto);align-items:center;gap:8px;text-align:left;cursor:pointer}.lineage-node:hover{border-color:#9eb8d0;background:#fbfdff}.lineage-node.missing{border-style:dashed;background:#f8fafc;color:#64748b;cursor:default}.lineage-node.selected{border-color:#16a34a;background:#ecfdf5;box-shadow:inset 3px 0 #16a34a}.lineage-rail{width:12px;height:12px;border:2px solid #94a3b8;border-radius:999px;background:#fff}.lineage-node.selected .lineage-rail{border-color:#16a34a;background:#22c55e}.lineage-node-main{display:grid;gap:2px;min-width:0}.lineage-node-main b{font-size:14px}.lineage-node-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lineage-node-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}.lineage-node-meta i,.lineage-node-meta em{border-radius:999px;padding:2px 7px;font-size:11px;font-style:normal;font-weight:800;white-space:nowrap}.lineage-node-meta i{background:#eef2ff;color:#3730a3}.lineage-node-meta em{background:#f1f5f9;color:#475569}.list-row span,.version-row span,.version-row small{color:var(--muted);font-size:12px}.list-row dl,.version-row dl,.kv{margin:0;display:flex;flex-wrap:wrap;gap:6px}.list-row dl div,.version-row dl div,.kv div{border:1px solid #e2e8ef;border-radius:999px;background:#f8fafb;padding:4px 8px;display:inline-flex;gap:5px;align-items:center;font-size:12px}dt{color:var(--muted)}dd{margin:0;font-weight:700}.viewer-panel{min-height:100vh}.viewer-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start;justify-content:flex-end;flex:0 0 auto;max-width:min(100%,560px)}.viewer-head{flex-wrap:wrap}.viewer-head>:first-child{flex:1 1 560px;min-width:0}.viewer-actions>button,.viewer-actions .hdr-menu>button{white-space:nowrap}.class-empty-cta{display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 12px}.class-empty-cta>span{color:var(--muted)}.class-empty-cta button{display:inline-flex;align-items:center;gap:6px}.hdr-menu{position:relative;display:inline-flex}.hdr-menu>button.icon-only{padding-left:9px;padding-right:9px}.hdr-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.hdr-menu-pop{position:absolute;top:calc(100% + 4px);left:0;z-index:41;min-width:200px;background:var(--surface, #fff);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 30px #00000029;padding:6px;display:flex;flex-direction:column;gap:2px}.hdr-menu-pop.right{left:auto;right:0}.hdr-menu-pop button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:8px 10px;border:none;background:transparent;border-radius:7px;font-size:.9em;color:var(--text);cursor:pointer}.hdr-menu-pop button:hover{background:var(--surface-2, rgba(127,127,127,.12))}.hdr-menu-pop button.danger{color:#dc2626}.hdr-menu-pop button.danger:hover{background:#dc26261a}.hdr-menu-pop button:disabled{opacity:.45;cursor:not-allowed}.metrics-strip{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:8px;margin-bottom:12px}.metrics-strip div{border:1px solid var(--line);border-radius:6px;background:var(--panel-muted);padding:9px 10px}.metrics-strip strong,.metrics-strip span{display:block}.metrics-strip span{color:var(--muted);font-size:12px}.distribution-panel{border:1px solid var(--line);border-radius:6px;background:#fff;padding:10px;margin-bottom:12px}.distribution-panel h3{margin:0}.distribution-panel p{margin:3px 0 0;color:var(--muted);font-size:13px}.workflow-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);gap:10px;margin-bottom:12px}.training-page{display:grid;gap:12px;align-items:start}.training-page-head{margin-bottom:2px}.training-index{position:sticky;top:0;max-height:100vh;overflow:auto}.active-training-list{display:grid;gap:8px}.training-result-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:#fff}.training-result-row{width:100%;border:0;background:transparent;color:var(--text);padding:11px 12px;text-align:left;display:grid;gap:7px}.training-result-row:hover{background:#f7fafc}.training-result-row.status-active{border:1px solid #f0bf59;border-radius:7px;background:#fff8e7;position:relative;overflow:hidden}.training-result-row.status-active.active{border-color:var(--accent);background:#eef9f5}.training-result-row.status-active:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,transparent,rgba(31,138,112,.12),transparent),radial-gradient(circle at 82% 18%,rgba(56,161,210,.32) 0 2px,transparent 2.6px),radial-gradient(circle at 90% 42%,rgba(93,191,153,.26) 0 1.7px,transparent 2.4px);animation:progress-slide 2.4s linear infinite;pointer-events:none}.training-result-row>*{position:relative;z-index:1}.result-main{display:flex;align-items:center;justify-content:space-between;gap:12px}.result-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-main span{border:1px solid #e2e8ef;border-radius:999px;background:#f8fafb;color:var(--accent);padding:3px 8px;font-size:12px;font-weight:800;white-space:nowrap}.training-result-row small{color:var(--muted)}.training-result-table{width:100%;border-collapse:collapse;min-width:1260px;font-size:14px}.training-result-table th,.training-result-table td{border-bottom:1px solid var(--line);padding:9px 10px;text-align:left;vertical-align:middle}.training-result-table th{position:sticky;top:0;z-index:1;background:#f7fafc;color:var(--muted);font-size:12px;font-weight:800}.training-result-table td{color:var(--text)}.training-result-table td:nth-child(3),.training-result-table td:nth-child(4){max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.training-result-tr{cursor:pointer}.training-result-tr:hover{background:#f8fbfd}.training-result-tr.active{background:#eef9f5}.training-result-detail-row td{background:#fbfdfc;padding:0}.training-result-detail{border-top:1px solid var(--line);padding:12px;display:grid;gap:12px}.training-result-detail.compact{border-top:0;padding:12px 14px}.active-run-detail-panel{border-top:1px solid rgba(20,114,96,.18);margin-top:10px;padding-top:10px}.model-evaluation-detail{display:grid;gap:12px;min-width:0}.model-eval-head{display:flex;align-items:stretch;justify-content:space-between;gap:12px;min-width:0}.model-score-strip{flex:1;display:grid;grid-template-columns:repeat(4,minmax(96px,1fr));gap:8px;min-width:0}.model-score-strip div{border:1px solid #dfe8ef;border-radius:6px;background:#fff;padding:8px 9px;display:grid;gap:2px}.model-score-strip span{color:var(--muted);font-size:11px;font-weight:700}.model-score-strip strong{font-size:18px}.model-download-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.download-link{text-decoration:none;white-space:nowrap}.compact-tabs{width:fit-content}.compact-tabs button{min-height:30px;font-size:12px}.inline-loading{color:var(--muted);display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700}.eval-score-layout{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(360px,1.6fr);gap:12px;min-width:0}.weak-class-panel{border:1px solid #dfe8ef;border-radius:6px;background:#fff;padding:10px;min-width:0}.weak-class-list{display:grid;gap:8px}.weak-class-row{display:grid;grid-template-columns:minmax(0,1fr) 56px;gap:8px;align-items:center}.weak-class-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.weak-class-row strong{text-align:right;font-variant-numeric:tabular-nums}.weak-class-row i{grid-column:1 / -1;height:6px;border-radius:999px;background:#edf2f7;overflow:hidden}.weak-class-row b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#b4232e,#b7791f,#147260)}.class-metric-table-wrap{overflow-x:auto;border:1px solid #dfe8ef;border-radius:6px;background:#fff}.class-metric-table{width:100%;min-width:640px;border-collapse:collapse}.class-metric-table th,.class-metric-table td{border-bottom:1px solid var(--line);padding:8px 9px;text-align:left;font-size:12px}.class-metric-table th{color:var(--muted);background:#f7fafc;font-weight:800}.class-metric-table tr:last-child td{border-bottom:0}.class-dot{width:9px;height:9px;display:inline-block;border:1px solid rgba(17,24,39,.16);border-radius:999px;margin-right:6px;vertical-align:middle}.eval-graph-layout{display:grid;gap:12px;min-width:0}.chart-pair{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:12px;min-width:0}.chart-pair>div{min-width:0}.metric-line-chart{border:1px solid #dfe8ef;border-radius:6px;background:#fff;padding:8px}.metric-line-chart svg{width:100%;height:190px;display:block}.metric-line-chart line{stroke:#b8c4d0;stroke-width:1.2}.metric-line-chart .grid-line{stroke:#eef3f7}.metric-line-chart path{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-legend{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:6px}.chart-legend span{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:11px;font-weight:700}.chart-legend i{width:14px;height:3px;border-radius:999px}.artifact-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.artifact-gallery figure{border:1px solid #dfe8ef;border-radius:6px;background:#fff;margin:0;overflow:hidden}.artifact-gallery img{width:100%;max-height:360px;object-fit:contain;display:block;background:#f8fafc}.artifact-preview-button{width:100%;border:0;border-radius:0;background:#f8fafc;padding:0;display:block;cursor:zoom-in}.artifact-preview-button:hover img{filter:saturate(1.04) contrast(1.02)}.artifact-gallery figcaption{border-top:1px solid var(--line);padding:7px 9px;color:var(--muted);font-size:12px;font-weight:800}.artifact-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#0a0f17db;display:grid;grid-template-rows:auto minmax(0,1fr);padding:14px;gap:10px}.artifact-lightbox-bar{min-height:42px;border:1px solid rgba(255,255,255,.16);border-radius:6px;background:#fffffff5;padding:7px 9px;display:flex;align-items:center;justify-content:space-between;gap:12px}.artifact-lightbox-bar strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.artifact-lightbox-bar div{display:flex;align-items:center;gap:8px}.artifact-lightbox-stage{min-height:0;display:grid;place-items:center;cursor:zoom-out}.artifact-lightbox-stage img{max-width:96vw;max-height:calc(100vh - 92px);object-fit:contain;border-radius:6px;background:#fff;box-shadow:0 10px 40px #00000047;cursor:default}.live-webcam-backdrop{padding:12px}.webcam-modal{width:min(1180px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow:auto}.webcam-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px);gap:14px;align-items:start;min-width:0}.webcam-layout>*{min-width:0}.webcam-stage-panel{min-width:0;display:grid;gap:8px}.webcam-stage{position:relative;width:100%;height:min(62vh,680px);min-height:320px;max-height:680px;border:1px solid #1f2937;border-radius:8px;background:#0b1117;overflow:hidden}.webcam-video,.webcam-mask-layer,.webcam-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.webcam-video,.webcam-mask-layer{object-fit:contain}.webcam-video{background:#0b1117}.webcam-mask-layer,.webcam-overlay{pointer-events:none}.webcam-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;gap:8px;align-content:center;color:#d9e3ef;background:#0b1117b8;font-weight:800}.webcam-statusbar{min-height:34px;border:1px solid var(--line);border-radius:6px;background:#f8fafc;padding:7px 9px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:12px;font-weight:800}.webcam-record-canvas{display:none}.webcam-controls{border:1px solid var(--line);border-radius:8px;background:var(--panel-muted);padding:12px;display:grid;gap:10px}.webcam-control-row{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:8px}.webcam-control-row .secondary{padding:0}.remote-camera-panel{display:grid;gap:8px;padding-top:8px;border-top:1px solid var(--line)}.remote-camera-box{display:grid;gap:8px}.remote-camera-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;color:var(--text);font-size:12px;font-weight:800}.remote-camera-head span{display:inline-flex;align-items:center;gap:6px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.remote-camera-head strong{flex:0 0 auto;color:var(--accent);font-size:11px}.remote-camera-qr{width:min(100%,188px);aspect-ratio:1;justify-self:center;border:1px solid var(--line);border-radius:8px;background:#fff}.remote-camera-url{color:var(--muted);font-size:11px;line-height:1.45;overflow-wrap:anywhere}.remote-camera-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.remote-camera-actions .secondary,.remote-camera-actions .danger-button{min-height:32px;padding:0 8px;font-size:12px}.range-field span{display:flex;align-items:center;justify-content:space-between;gap:8px}.range-field strong{color:var(--text);font-variant-numeric:tabular-nums}.range-field input[type=range]{width:100%;margin:0}.training-split-panels{display:grid;gap:12px}.training-workspace,.model-workspace,.model-detail-panel{display:grid;gap:12px;min-width:0}.sidebar-widget{margin-top:auto;border-top:1px solid var(--line);padding-top:10px}.llm-usage-widget{margin-top:0;font-size:12px}.llm-usage-head{display:flex;align-items:center;justify-content:space-between;gap:6px}.llm-usage-head>span{display:inline-flex;align-items:center;gap:5px;color:var(--muted)}.llm-usage-head strong{font-size:14px}.llm-usage-sub{color:var(--muted);margin-top:2px}.llm-usage-models{margin-top:5px;display:flex;flex-direction:column;gap:2px}.llm-usage-model-row{display:flex;justify-content:space-between;gap:8px;color:var(--muted)}.llm-usage-model-row span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.llm-usage-now{margin-top:5px;color:var(--muted);font-size:11px}.sidebar-widget .system-metrics-widget{min-width:0}.sidebar-widget .system-metrics-widget .metric-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.sidebar-widget .system-metrics-widget .metric-card{background:#f8fafbe0;position:relative;height:44px;padding:3px 5px;gap:0;overflow:hidden}.sidebar-widget .system-metrics-widget .metric-sparkline{position:absolute;left:5px;right:5px;bottom:3px;width:auto;height:22px;z-index:0}.sidebar-widget .system-metrics-widget .metric-card div,.sidebar-widget .system-metrics-widget .metric-card small{position:relative;z-index:1}.sidebar-widget .system-metrics-widget .metric-card small{margin-top:-1px}.model-detail-panel{position:sticky;top:0;max-height:100vh;overflow:auto}.model-detail{display:grid;gap:10px}.model-visual-panel{min-height:360px;align-content:start}.model-visual{min-height:245px;border:1px solid #d9e3ec;border-radius:8px;background:radial-gradient(circle at 18% 22%,rgba(103,181,137,.18),transparent 30%),radial-gradient(circle at 84% 18%,rgba(56,161,210,.14),transparent 28%),linear-gradient(180deg,#fbfffd,#f4faf7);padding:22px;display:grid;grid-template-columns:minmax(150px,.45fr) minmax(0,1fr);gap:22px;align-items:center}.active-training-visual{position:relative;overflow:hidden}.active-training-visual:after{content:"";position:absolute;inset:-24px 0 auto auto;width:38%;height:160%;background-image:radial-gradient(circle,rgba(56,161,210,.58) 0 2px,transparent 2.8px),radial-gradient(circle,rgba(31,138,112,.34) 0 1.6px,transparent 2.4px);background-size:34px 34px,52px 52px;transform:rotate(18deg);animation:irrigation-rain 1.8s linear infinite;opacity:.55;pointer-events:none}.model-visual>*{position:relative;z-index:1}.score-orbit{aspect-ratio:1;border:2px solid rgba(31,138,112,.24);border-radius:999px;background:radial-gradient(circle at 50% 50%,#fff 0 52%,transparent 53%),conic-gradient(from 210deg,#1f8a70,#67b589,#d7efe6,#1f8a70);display:grid;place-items:center;align-content:center;box-shadow:inset 0 0 0 10px #ffffffc7}.score-orbit strong{font-size:28px;line-height:1}.score-orbit span{color:var(--muted);font-size:12px;font-weight:800}.model-visual h3{margin:0 0 6px;font-size:24px}.model-visual p{margin:0 0 10px}.model-badges{display:flex;flex-wrap:wrap;gap:6px}.model-badges span{border:1px solid #d9e3ec;border-radius:999px;background:#ffffffb8;padding:3px 8px;color:var(--muted);font-size:12px;font-weight:800}.growth-card{margin-top:12px;border:1px solid #cfe8df;border-radius:8px;background:linear-gradient(135deg,#ffffffe6,#effaf4eb),radial-gradient(circle at 92% 10%,rgba(103,181,137,.18),transparent 26%);padding:12px;display:grid;gap:10px}.growth-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.growth-head h3{margin:0 0 3px}.growth-head p{margin:0}.growth-head>span{border-radius:999px;background:#e9f6f1;color:var(--accent-strong);padding:3px 8px;font-size:12px;font-weight:800;white-space:nowrap}.growth-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.growth-stats div{border:1px solid #d9e3ec;border-radius:6px;background:#ffffffb8;padding:7px;display:grid;gap:1px}.growth-stats strong{font-size:18px}.growth-stats span,.growth-next span{color:var(--muted);font-size:11px;font-weight:800}.growth-next{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.growth-next b{border:1px solid #d9e3ec;border-radius:999px;background:#fff;padding:3px 8px;font-size:12px}.growth-card ul{margin:0;padding-left:18px;color:var(--muted);font-size:13px;line-height:1.55}.model-hero{border:1px solid #d9e3ec;border-radius:6px;background:#f8fafb;padding:10px;display:grid;gap:4px}.model-hero strong,.model-hero small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-hero span{width:fit-content;border-radius:999px;background:#e9f6f1;color:var(--accent-strong);padding:2px 7px;font-size:11px;font-weight:800}.model-hero small{color:var(--muted)}.system-metrics-widget{min-width:min(520px,46vw)}.system-metrics-widget .metric-card-grid{display:grid;grid-template-columns:repeat(4,minmax(86px,1fr));gap:6px}.system-metrics-widget .metric-card{border:1px solid #dfe8ef;border-radius:6px;background:#ffffffb8;padding:6px 7px;display:grid;gap:3px;min-width:0}.system-metrics-widget .metric-card div{display:flex;align-items:baseline;justify-content:space-between;gap:4px;min-width:0}.system-metrics-widget .metric-card span,.system-metrics-widget .metric-card small{color:var(--muted);font-size:10px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.system-metrics-widget .metric-card strong{font-size:13px;line-height:1;flex:0 0 auto;white-space:nowrap}.system-metrics-widget .metric-sparkline{width:100%;height:22px;border-radius:5px;border:1px solid #edf2f7;display:block}.disk-usage-summary{border:1px solid #dfe8ef;border-radius:6px;background:#fff;padding:12px;display:grid;gap:8px;margin:0 0 12px;min-width:0}.system-metrics-widget .disk-usage-summary{margin:3px 0 0;padding:7px;background:#ffffffb8}.disk-usage-summary.compact{gap:6px}.disk-usage-title,.disk-usage-row-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.disk-usage-title span{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:12px;font-weight:800}.disk-usage-title strong{font-size:15px;line-height:1}.disk-usage-row{display:grid;gap:4px;min-width:0}.disk-usage-row-head span,.disk-usage-row small{color:var(--muted);font-size:11px}.disk-usage-row-head strong{font-size:12px;line-height:1;white-space:nowrap}.disk-usage-row small{overflow-wrap:anywhere}.disk-usage-bar{height:9px;border-radius:999px;background:#edf2f7;overflow:hidden}.disk-usage-bar i{display:block;height:100%;min-width:1px;border-radius:inherit}.disk-usage-row.disk .disk-usage-bar i{background:#64748b}.disk-usage-row.hub .disk-usage-bar i{background:#1f8a70}.disk-usage-row.project .disk-usage-bar i{background:#1d7ed8}.disk-warning{border:1px solid #f5c2c2;border-radius:6px;background:#fff5f5;color:#9b1c1c;padding:6px 7px;display:flex;align-items:flex-start;gap:6px;font-size:11px;font-weight:800}.current-training-panel{border-color:#cfe8df;background:#fbfffd}.active-run-grid,.model-artifact-list{display:grid;gap:8px}.active-run-card,.model-artifact-row{border:1px solid #d9e3ec;border-radius:6px;background:#fff;color:var(--text);padding:9px 10px;text-align:left;display:grid;gap:5px;min-width:0}.active-run-card{border-color:#efbe59b8;background:radial-gradient(circle at 14% 0%,rgba(255,255,255,.9),transparent 22%),radial-gradient(circle at 88% 8%,rgba(101,194,235,.2),transparent 32%),linear-gradient(180deg,#fffceff2,#effaf4f2),#fff8e7;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffc7}.active-run-card.active{border-color:var(--accent);background:linear-gradient(180deg,#f2fdf8f5,#e8f8f1f5),#eef9f5}.active-run-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 12% 14%,rgba(255,255,255,.82),transparent 18%),radial-gradient(circle at 78% 16%,rgba(120,205,245,.16),transparent 26%),linear-gradient(100deg,transparent 0%,rgba(31,138,112,.08) 42%,transparent 72%);animation:weather-glow 7s ease-in-out infinite;pointer-events:none}.active-run-card>*{position:relative;z-index:1}.active-run-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:2px 0 0}.active-run-metrics div{border:1px solid rgba(20,114,96,.18);border-radius:6px;background:#ffffffad;padding:5px 6px;display:grid;gap:1px}.active-run-metrics dt{color:var(--muted);font-size:10px;font-weight:800}.active-run-metrics dd{margin:0;color:var(--text);font-size:13px;font-weight:900;font-variant-numeric:tabular-nums}.model-artifact-row strong,.model-artifact-row small,.active-run-card span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-artifact-row span{color:var(--accent-strong);font-size:12px;font-weight:800}.model-artifact-row small{color:var(--muted)}.training-index-group{border-top:1px solid var(--line);padding-top:10px;margin-top:10px;display:grid;gap:6px}.training-index-group h3{margin:0;font-size:14px}.training-index-row{width:100%;border:1px solid #d9e3ec;border-radius:6px;background:#fff;color:var(--text);padding:8px 9px;text-align:left;display:grid;gap:2px}.training-index-row.active{border-color:var(--accent);background:#eef9f5}.training-index-row.status-active{border-color:#f0bf59;background:#fff8e7;position:relative;overflow:hidden}.training-index-row.status-active.active{border-color:var(--accent);background:#eef9f5}.training-index-row.status-active:before,.run-row.active-running:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,transparent,rgba(31,138,112,.12),transparent),radial-gradient(circle at 82% 18%,rgba(56,161,210,.32) 0 2px,transparent 2.6px),radial-gradient(circle at 90% 42%,rgba(93,191,153,.26) 0 1.7px,transparent 2.4px);animation:progress-slide 2.4s linear infinite;pointer-events:none}.training-index-row.static{cursor:default}.training-index-row strong,.training-index-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.training-index-row span{color:var(--muted);font-size:12px}.run-line{display:flex;justify-content:space-between;gap:8px;align-items:center}.run-line em{color:var(--accent-strong);font-size:11px;font-style:normal;font-weight:800;white-space:nowrap}.run-progress-line{height:6px;border-radius:999px;background:#e7eef5;overflow:hidden}.run-progress-line.large{height:12px;margin:12px 0}.run-progress-line i{display:block;height:100%;min-width:12%;border-radius:inherit;background:var(--accent)}.run-detail{display:grid;gap:8px}.workflow-section{border:1px solid var(--line);border-radius:6px;background:#fff;padding:10px;min-width:0}.dataset-evaluation-section,.ai-diagnosis-section{margin-bottom:12px}.ai-diagnosis-section h3{display:inline-flex;align-items:center;gap:6px}.workflow-section h3{margin:0}.workflow-section p{margin:3px 0 0;color:var(--muted);font-size:13px}.evaluation-stats{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.evaluation-stats span{border:1px solid #d9e3ec;border-radius:999px;background:#f8fafb;padding:3px 8px;font-size:12px;font-weight:700}.ai-diagnosis-message{margin:8px 0}.ai-vlm-control{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:6px 0 2px;font-size:13px;color:var(--muted)}.ai-vlm-control label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.ai-vlm-count input[type=range]{width:120px}.ai-vlm-count input[type=number]{width:58px}.ai-vlm-hint{font-size:12px;opacity:.85}.ai-decision-log{border:1px solid #d9e3ec;border-radius:6px;background:#f8fafb;padding:8px;margin:8px 0}.ai-decision-log-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.ai-decision-log-head strong{font-size:13px}.ai-decision-log-head span{color:var(--muted);font-size:12px;font-weight:700}.ai-decision-log ol{list-style:none;margin:0;padding:0;display:grid;gap:5px;max-height:220px;overflow:auto}.ai-decision-log li{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px;align-items:start;border-left:3px solid #93a4b8;background:#fff;border-radius:5px;padding:6px 7px}.ai-decision-log li.ok{border-left-color:#16a34a}.ai-decision-log li.warn{border-left-color:#d97706}.ai-decision-log li.error{border-left-color:#dc2626}.ai-decision-log time{color:var(--muted);font-size:11px;font-weight:700;white-space:nowrap}.ai-decision-log li span{color:#203047;font-size:12px;line-height:1.35;min-width:0}.ai-diagnosis-stats{display:grid;grid-template-columns:repeat(5,minmax(96px,1fr));gap:8px;margin:9px 0}.ai-diagnosis-stats div{border:1px solid #d9e3ec;border-radius:6px;background:#f8fafb;padding:8px 9px;min-height:56px}.ai-diagnosis-stats strong,.ai-diagnosis-stats span{display:block}.ai-diagnosis-stats strong{font-size:18px;line-height:1.1}.ai-diagnosis-stats span{color:var(--muted);font-size:12px;margin-top:3px}.ai-diagnosis-stats .ok{border-color:#a9d8c8;background:#effaf4}.ai-diagnosis-stats .warn{border-color:#f5c56b;background:#fff8e6}.ai-diagnosis-stats .danger{border-color:#f2a3a3;background:#fff1f1}.ai-diagnosis-actions{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 8px}.ai-diagnosis-actions button{min-height:34px}.ai-diagnosis-issues{max-height:180px}.ai-review-gallery{margin-top:8px;border:1px solid #d9e3ec;border-radius:6px;background:#f8fafb;padding:8px}.ai-review-gallery-head{display:flex;align-items:center;justify-content:space-between;gap:8px 12px;margin-bottom:8px;flex-wrap:wrap}.ai-review-gallery-title{display:flex;flex-direction:column;gap:2px;min-width:0}.ai-review-gallery-title strong{font-size:13px;display:inline-flex;align-items:center;gap:5px}.ai-review-gallery-title .muted{color:var(--muted);font-size:12px;font-weight:700}.ai-review-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ai-review-actions button{display:inline-flex;align-items:center;gap:5px}.ai-review-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:8px;max-height:360px;overflow:auto}.ai-review-card{border:1px solid #d9e3ec;border-radius:6px;background:#fff;padding:0;text-align:left;overflow:hidden;display:grid;grid-template-rows:96px minmax(72px,auto) auto;min-width:0;color:var(--text)}.ai-review-card.exclude{border-color:#f0a1a1}.ai-review-card.uncertain{border-color:#f0cd78}.ai-review-card.keep{border-color:#9fd8bd}.ai-review-card.deleting{opacity:.45;pointer-events:none}.ai-review-thumb-btn{position:relative;display:block;width:100%;height:96px;padding:0;border:0;background:none;cursor:pointer;min-width:0}.ai-review-thumb-btn:disabled{cursor:default}.ai-review-thumb{background:#e8eef5;display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-width:0;overflow:hidden}.ai-review-thumb img{width:100%;height:100%;object-fit:cover;display:block}.ai-review-thumb span{color:var(--muted);font-size:12px}.ai-review-card-body{padding:7px;display:grid;gap:4px;min-width:0}.ai-review-card-body strong{font-size:12px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-review-card-body small{color:var(--muted);font-size:11px;line-height:1.25;min-height:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-review-card-body p{margin:0;color:#42526b;font-size:11px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ai-review-badge{position:absolute;top:5px;left:5px;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:800;box-shadow:0 1px 3px #00000040}.ai-review-badge.exclude{background:#ffe2e2;color:#b42318}.ai-review-badge.uncertain{background:#fff2c7;color:#8a5a00}.ai-review-badge.keep{background:#e4f7ed;color:#126b41}.ai-review-del{display:flex;align-items:center;justify-content:center;gap:5px;width:100%;border:0;border-top:1px solid #f0d4d4;background:#fff5f5;color:#b42318;font-size:12px;font-weight:700;padding:7px;cursor:pointer}.ai-review-del:hover:not(:disabled){background:#ffe2e2}.ai-review-del:disabled{cursor:default;opacity:.6}.ai-review-zoom-hint{position:absolute;right:5px;bottom:5px;display:inline-flex;align-items:center;gap:3px;border-radius:5px;padding:1px 6px;font-size:10px;font-weight:700;color:#fff;background:#0f172a9e}.ai-review-thumb-btn:hover .ai-review-zoom-hint{background:#0f172ad9}.ai-review-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0a0f17e0;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;padding:14px;gap:10px}.ai-review-lightbox-bar{min-height:42px;border-radius:6px;background:#fffffff5;padding:7px 10px;display:flex;align-items:center;justify-content:space-between;gap:12px}.ai-review-lightbox-bar strong{display:inline-flex;align-items:center;gap:8px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.ai-review-lightbox-bar .muted{color:var(--muted);font-weight:700}.ai-review-lightbox-bar>div{display:flex;align-items:center;gap:6px;flex:none}.ai-review-badge.inline{position:static;box-shadow:none}.ai-review-lightbox-stage{min-height:0;display:grid;place-items:center}.zoom-anno-wrap{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none}.zoom-anno-inner{position:relative;line-height:0;will-change:transform}.zoom-anno-img{display:block;max-width:92vw;max-height:calc(100vh - 230px);width:auto;height:auto;border-radius:6px;background:#fff;box-shadow:0 10px 40px #0000004d;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.zoom-anno-ctrls{position:absolute;right:12px;bottom:12px;display:flex;gap:6px;z-index:4}.zoom-anno-ctrls button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid rgba(255,255,255,.25);border-radius:7px;background:#0f172aa8;color:#fff;cursor:pointer}.zoom-anno-ctrls button:hover:not(:disabled){background:#0f172ad9}.zoom-anno-ctrls button:disabled{opacity:.4;cursor:default}.ai-review-lightbox-reason{margin:0;text-align:center;color:#e8eef5;font-size:13px;line-height:1.4;max-width:900px;justify-self:center}.ai-review-lightbox-reason b{color:#fff}.ai-review-lightbox-actions{display:flex;align-items:center;justify-content:center;gap:12px}.ai-review-lightbox-actions button{display:inline-flex;align-items:center;gap:6px}.ai-review-lightbox-actions .danger-button.big{border:0;border-radius:8px;background:#e5484d;color:#fff;font-size:15px;font-weight:800;padding:11px 22px;cursor:pointer;box-shadow:0 4px 14px #e5484d66}.ai-review-lightbox-actions .danger-button.big:hover:not(:disabled){background:#d33a3f}.ai-review-lightbox-actions .danger-button.big:disabled{opacity:.55;cursor:default}.issue-list{display:grid;gap:6px;max-height:156px;overflow:auto}.issue{border:1px solid #d9e3ec;border-radius:6px;padding:7px 8px;background:#f8fafb;display:grid;gap:2px}.issue strong{font-size:13px}.issue span{color:var(--muted);font-size:12px}.issue.warning{border-color:#f5c56b;background:#fff8e6}.issue.error{border-color:#f2a3a3;background:#fff1f1}.issue.info{border-color:#b9d8f5;background:#eef7ff}.issue.ok{border-color:#a9d8c8;background:#effaf4}.training-form{display:grid;grid-template-columns:minmax(170px,1.4fr) repeat(3,minmax(72px,.55fr));gap:8px;margin-top:8px}.training-form label{color:var(--muted);font-size:12px;font-weight:700}.training-form input{margin-top:4px;width:100%}.training-actions{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:8px}.run-list{display:grid;gap:5px;margin-top:8px}.run-list.large{margin-top:0}.run-history-modal{max-width:960px}.run-history-list{display:grid;gap:8px;max-height:min(62vh,640px);overflow:auto}.run-history-row{width:100%;border:1px solid #d9e3ec;border-radius:6px;background:#fff;padding:9px 10px;color:var(--text);display:grid;grid-template-columns:minmax(180px,1.1fr) minmax(150px,.9fr) minmax(170px,1fr) minmax(160px,.9fr);gap:10px;align-items:center;text-align:left}.run-history-row.active{border-color:var(--accent);background:#eef9f5}.run-history-row div{display:flex;align-items:center;gap:8px;min-width:0}.run-history-row strong,.run-history-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-history-row span{border-radius:999px;background:#e9f6f1;color:var(--accent-strong);padding:2px 7px;font-size:11px;font-weight:800}.run-history-row small{color:var(--muted)}.run-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;border:1px solid #e2e8ef;border-radius:6px;padding:6px 8px;background:var(--panel-muted)}button.run-row{width:100%;text-align:left}.run-row.active{border-color:var(--accent);background:#eef9f5}.run-row.active-running{border-color:#f0bf59;background:linear-gradient(180deg,#fffceff2,#effaf4f2),#fff8e7;position:relative;overflow:hidden}.run-row strong,.run-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-row span{color:var(--accent-strong);font-size:12px;font-weight:800}.run-row small{color:var(--muted)}.distribution-list{display:grid;gap:6px;max-height:360px;overflow:auto}.distribution-row{display:grid;grid-template-columns:minmax(140px,220px) minmax(120px,1fr) minmax(140px,auto) auto;gap:8px;align-items:center;border:1px solid #e2e8ef;border-radius:6px;padding:6px 8px;background:var(--panel-muted)}.distribution-row.muted-row{opacity:.58}.distribution-name{display:flex;align-items:center;gap:8px;min-width:0}.distribution-name .class-warn{flex:none;overflow:visible;white-space:nowrap;font-size:11px;color:#b45309;background:#fef3c7;border-radius:6px;padding:1px 6px}.distribution-name .class-warn.zero{color:#b91c1c;background:#fee2e2}.distribution-name span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-dot{width:12px;height:12px;border-radius:999px;border:1px solid rgba(17,24,39,.18);flex:0 0 auto}.distribution-bar{height:7px;border-radius:999px;background:#e8eef4;overflow:hidden}.distribution-bar span{display:block;height:100%;border-radius:inherit}.distribution-row dl{margin:0;display:grid;grid-template-columns:repeat(4,minmax(28px,auto));gap:4px 8px;justify-content:end;font-size:12px}.distribution-actions{display:flex;justify-content:flex-end}.distribution-actions .secondary{min-height:30px;padding:0 9px;white-space:nowrap}.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:end;margin-bottom:12px}.toolbar label{color:var(--muted);font-size:12px;font-weight:700}.toolbar select{margin-top:4px;min-width:140px}.sample-count{color:var(--muted);font-size:13px;padding-bottom:9px}.viewer-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:12px;align-items:start}.image-stage{position:relative;border:1px solid var(--line);border-radius:6px;background:#0f1720;overflow:hidden}.image-stage img{display:block;width:100%;height:auto}.annotation-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.anno-labels{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3}.anno-label{position:absolute;transform:translateY(-115%);display:inline-flex;align-items:center;gap:4px;padding:1px 6px;border-radius:5px;background:#0f172ad1;color:#fff;font-size:12px;font-weight:600;line-height:1.35;white-space:nowrap;max-width:60%;overflow:hidden;text-overflow:ellipsis}.anno-label-dot{width:8px;height:8px;border-radius:50%;flex:none}.anno-label-ai{background:#b45309e0;pointer-events:all;cursor:pointer;border:1px dashed rgba(255,255,255,.55)}.anno-label-ai-active{background:#f59e0bf5;color:#fff;border-color:#fff;box-shadow:0 0 0 2px #f59e0b73,0 0 16px #f59e0bbf}.sample-panel{border:1px solid var(--line);border-radius:6px;background:var(--panel-muted);padding:12px}.shape-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.shape-list span{border:1px solid;border-radius:999px;background:#fff;padding:4px 8px;font-size:12px;font-weight:700}.shape-list.editable{flex-direction:column;align-items:stretch;gap:4px}.shape-list.editable .ds-edit-shape{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:3px 6px;font-size:12px;font-weight:400}.shape-list.editable .ds-edit-shape i{width:11px;height:11px;border-radius:3px;display:inline-block;flex:none}.shape-list.editable .ds-edit-shape select{flex:1;font-size:12px}.ds-edit-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}.ds-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.ds-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:12px;font-weight:500;line-height:1.5;color:var(--text)}.ds-chip-dot{width:10px;height:10px;border-radius:50%;flex:none;box-shadow:0 0 0 1px #00000014 inset}.ds-chip-name{white-space:nowrap}.distribution-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.split-summary-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0 12px;padding:8px 12px;background:#38bdf80f;border:1px solid var(--line);border-radius:8px;font-size:.85rem}.split-summary-bar .ss-ratio{font-weight:600}.split-summary-bar .ss-dim{color:var(--muted, #94a3b8);font-weight:400;margin-left:4px}.ss-badge{padding:2px 8px;border-radius:999px;font-size:.78rem;font-weight:600}.ss-badge.ok{background:#22c55e29;color:#15803d}.ss-badge.warn{background:#f59e0b2e;color:#b45309}.resplit-result-table{width:100%;border-collapse:collapse;font-size:.85rem;margin:8px 0}.resplit-result-table th,.resplit-result-table td{border:1px solid var(--line);padding:4px 8px;text-align:center}.resplit-result-table th{background:#94a3b81f}.resplit-result-table td:first-child{text-align:left;font-weight:600}.resplit-result-table .rr-ok{color:#15803d;font-weight:700}.resplit-result-table .rr-warn{color:#b45309;font-weight:700}.modal-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.generation-modal{width:min(1120px,calc(100vw - 28px))}.generation-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:14px;align-items:start}.generation-main,.generation-side{display:grid;gap:10px;min-width:0}.generation-block{border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px}.generation-block-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.generation-block-head.compact{margin-bottom:7px}.generation-block-head strong,.recipe-card span,.test-output-box{display:inline-flex;align-items:center;gap:6px}.generation-block-head select{max-width:260px;min-width:180px;border:1px solid var(--line-strong);border-radius:6px;background:#fff;color:var(--text);padding:6px 8px}.generation-block-head.recipe-head{align-items:stretch;flex-direction:column}.generation-block-head.recipe-head select{max-width:none;width:100%}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(138px,1fr));gap:8px}.recipe-card{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-height:58px;border:1px solid var(--line);border-radius:8px;background:var(--panel-muted);color:var(--text);padding:9px;cursor:pointer}.recipe-card:hover:not(:disabled),.recipe-card.active{border-color:var(--accent);background:#edf7f4}.recipe-card small{color:var(--muted);font-size:11px;font-weight:700}.condition-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.condition-row button{border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--text);padding:5px 10px;font-size:12px;font-weight:700;cursor:pointer}.condition-row button:hover:not(:disabled),.condition-row button.active{border-color:var(--accent);background:#e7f3ef;color:var(--accent)}.class-condition-row{max-height:112px;overflow:auto;padding-right:2px}.generation-inline-actions,.save-template-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.save-template-row{margin-top:8px}.save-template-row input{flex:1;min-width:160px;border:1px solid var(--line-strong);border-radius:6px;padding:8px 10px}.seed-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:7px;max-height:236px;overflow:auto;padding-right:2px}.seed-grid button{padding:0;border:3px solid transparent;border-radius:8px;background:transparent;line-height:0;cursor:pointer}.seed-grid button.active{border-color:var(--accent)}.seed-grid img{width:100%;aspect-ratio:1 / 1;object-fit:cover;border-radius:5px;display:block}.generation-settings-grid{display:grid;grid-template-columns:1fr .7fr;gap:8px}.generation-size-field{grid-column:1 / -1}.test-output-box{border:1px solid #b7e0c4;background:#effaf3;color:var(--ok);border-radius:8px;padding:9px 10px;margin-bottom:8px;font-weight:700}.generation-preview{width:100%;max-height:260px;object-fit:contain;border:1px solid var(--line);border-radius:8px;background:var(--panel-muted)}.generation-preview.empty{display:grid;place-items:center;min-height:150px;color:var(--muted)}.generated-output-dest{margin:-2px 0 7px;color:var(--muted);font-size:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.generated-output-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:7px;max-height:232px;overflow:auto;padding-right:2px}.generated-output-grid a{display:grid;gap:4px;color:var(--text);text-decoration:none;min-width:0}.generated-output-grid img{width:100%;aspect-ratio:1 / 1;object-fit:cover;border:1px solid var(--line);border-radius:6px;background:var(--panel-muted)}.generated-output-grid a:hover img{border-color:var(--accent)}.generated-output-grid small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px;font-weight:700}.generation-job-card{display:grid;gap:7px;border:1px solid var(--line);border-radius:8px;background:var(--panel-muted);padding:9px}.generation-job-card>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px}.generation-job-card.running,.generation-job-card.queued{border-color:#f0d59a;background:#fff8ea}.generation-job-card.completed{border-color:#b7e0c4;background:#effaf3}.generation-job-card.failed{border-color:#f3b6b6;background:#fff1f1}.generation-progress{height:8px;border-radius:999px;background:#e7edf3;overflow:hidden}.generation-progress i{display:block;height:100%;background:var(--accent)}.generation-job-list{display:grid;gap:6px}.generation-job-list button{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);padding:7px;text-align:left;cursor:pointer}.generation-job-list button.active,.generation-job-list button:hover{border-color:var(--accent);background:#edf7f4}.generation-job-list small,.gen-warning{color:var(--muted);font-size:12px;font-weight:700}.gen-warning{display:inline-flex;align-items:center;gap:4px;color:var(--danger)}.generation-foot{position:sticky;bottom:-14px;margin:12px -14px -14px;padding:10px 14px;background:#fffffff5;border-top:1px solid var(--line)}.generation-foot button{justify-content:center;white-space:nowrap}@media(max-width:900px){.generation-workspace{grid-template-columns:1fr}.generation-block-head{align-items:stretch;flex-direction:column}.generation-block-head select{max-width:none;width:100%}}@media(max-width:560px){.generation-foot{display:grid;grid-template-columns:.85fr 1.35fr 1.1fr;gap:6px}.generation-foot button{width:100%;min-width:0;padding:8px 5px;font-size:12px}}.active-tool{outline:2px solid var(--accent, #2563eb);outline-offset:-1px;font-weight:700}.ds-draw-bar{display:flex;flex-direction:column;gap:6px;margin:8px 0;padding:8px;border:1px dashed var(--line);border-radius:8px;background:#38bdf80f}.ds-draw-bar .muted{font-size:.82em}.ds-draw-commit{display:flex;flex-direction:column;align-items:stretch;gap:8px}.class-chip-row{display:flex;flex-wrap:wrap;gap:6px}.class-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:#1f2937;color:#e5e7eb;cursor:pointer;font-size:.85rem;font-weight:600}.class-chip:hover:not(:disabled){background:#374151;border-color:#2563eb}.class-chip.active{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb59 inset}.class-chip:disabled{opacity:.5;cursor:default}.commit-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.commit-actions .tiny{font-size:.76rem}.editor-nav-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.editor-nav-row button{flex:1;justify-content:center;white-space:nowrap;font-size:.85rem;padding:7px 8px}.editor-nav-row>.muted{white-space:nowrap;font-size:.8rem}.anno-page-btn{background:transparent;border:1px dashed #475569;color:#9ca3af;border-radius:6px;padding:3px 8px;cursor:pointer;font-size:.85rem;white-space:nowrap}.anno-page-btn:hover{border-color:#2563eb;color:#e5e7eb}.anno-page-jump-wrap{display:inline-flex;align-items:center;gap:4px}.anno-filter-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 4px 2px 9px;border-radius:999px;background:#1e3a8a;color:#dbeafe;border:1px solid #2563eb;font-size:.82rem;font-weight:600;white-space:nowrap}.anno-filter-clear{display:inline-flex;align-items:center;justify-content:center;padding:2px;border:none;border-radius:999px;background:#ffffff1f;color:#dbeafe;cursor:pointer}.anno-filter-clear:hover{background:#ffffff47;color:#fff}.anno-page-jump{width:64px;background:#0b1220;color:#e5e7eb;border:1px solid #2563eb;border-radius:6px;padding:3px 6px;font-size:.85rem}.anno-popup-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90}.anno-popup{position:fixed;z-index:91;transform:translate(-50%,12px);max-width:280px;background:#0f172a;border:1px solid #334155;border-radius:10px;box-shadow:0 8px 28px #00000080;padding:10px;display:flex;flex-direction:column;gap:8px}.anno-popup-head{display:flex;align-items:center;gap:6px;font-size:.9rem}.anno-popup-drag{cursor:move;-webkit-user-select:none;user-select:none;padding-bottom:4px;border-bottom:1px solid #1f2937}.anno-popup-drag svg{opacity:.6}.anno-popup .class-chip-row{display:flex;flex-wrap:wrap;gap:5px}.anno-popup-del{justify-content:center}.anno-commit-popup{max-width:330px;border-color:#38bdf8;box-shadow:0 8px 28px #38bdf840}.aa-settings{display:flex;flex-direction:column;gap:8px;margin-bottom:10px;padding:10px;border:1px solid #334155;border-radius:8px;background:#38bdf80d}.aa-settings-head{display:flex;align-items:center;gap:6px;font-size:.9rem}.aa-settings .field span{font-size:.78rem;color:#9ca3af}.aa-settings textarea,.aa-settings select{width:100%;background:#0b1220;color:#e5e7eb;border:1px solid #334155;border-radius:6px;padding:5px 7px;font-size:.85rem}.aa-settings input[type=range]{width:100%}.aa-review{display:flex;flex-direction:column;gap:8px;margin-bottom:10px;padding:10px;border:1px solid #b45309;border-radius:8px;background:#f59e0b14}.aa-review-empty{border-color:#334155;background:#94a3b814}.aa-review-actions{display:flex;gap:8px}.aa-review-actions button{flex:1;justify-content:center}.aa-review-list{display:flex;flex-direction:column;gap:4px;max-height:220px;overflow-y:auto}.aa-review-item{display:flex;align-items:center;gap:6px;padding:4px 5px;border:1px solid transparent;border-radius:7px;font-size:.85rem;cursor:pointer}.aa-review-item:hover,.aa-review-item-active{background:#f59e0b2e;border-color:#f59e0b8c}.aa-review-index{min-width:2.8ch;color:#fbbf24;font-weight:800;font-variant-numeric:tabular-nums}.aa-review-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aa-review-item-active .aa-review-name{color:#fbbf24;font-weight:800}.anno-editor-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#0f172a;color:#e5e7eb;display:flex;flex-direction:column}.anno-editor-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;background:#111827;border-bottom:1px solid #1f2937}.anno-editor-name{font-size:1rem;max-width:36ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.anno-editor-top .muted{color:#9ca3af}.anno-editor-spacer{flex:1}.anno-editor-body{flex:1;min-height:0;display:grid;grid-template-columns:1fr 320px;gap:12px;padding:12px}.aeditor-clip{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#0b1220;border-radius:8px;min-height:0;min-width:0}.anno-img-spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#93c5fd;pointer-events:none;z-index:5;background:#0b12208c;border-radius:50%;padding:12px;display:flex}.anno-editor-body .anno-editor-stage{will-change:transform}.anno-editor-body .anno-editor-stage img{max-height:calc(100vh - 130px)}.anno-editor-side{display:flex;flex-direction:column;gap:8px;overflow-y:auto;min-height:0;background:#111827;border-radius:8px;padding:10px}.anno-editor-side .shape-list{max-height:48vh;overflow-y:auto}.anno-editor-side .shape-list.editable .ds-edit-shape{background:#1f2937;border-color:#334155;color:#e5e7eb}.anno-editor-side .ds-edit-shape select{background:#0b1220;color:#e5e7eb;border:1px solid #334155}.anno-editor-side .ds-edit-shape.sel{outline:2px solid #4a90c2;outline-offset:-1px;background:#18324a}.anno-editor-side .ds-edit-shape.primary{outline-color:#7cc4f5}.anno-batch-bar{background:#0b1f33;border:1px solid #2b4a66;border-radius:8px;padding:6px 8px;margin-top:6px}.anno-batch-class{background:#0b1220;color:#e5e7eb;border:1px solid #334155;border-radius:6px;font-size:12px;padding:2px 4px}.anno-editor-modal .anno-image-missing{color:#94a3b8}.anno-shape-count{margin:2px 0}.thumb-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;max-height:62vh;overflow-y:auto;padding:12px 2px 2px}.thumb{border:2px solid transparent;border-radius:6px;background:#fff;color:var(--muted);padding:3px;display:grid;gap:3px}.thumb.active{border-color:var(--accent)}.thumb img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:4px;background:#101820}.thumb span{font-size:11px}.empty{border:1px dashed var(--line-strong);border-radius:6px;background:var(--panel-muted);color:var(--muted);padding:20px;display:flex;align-items:center;gap:8px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9500;display:grid;place-items:start center;padding-top:24px;background:#0c121a59}.settings-modal{width:min(720px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow);padding:14px}.app-settings-modal{width:min(1180px,calc(100vw - 32px))}.modal-backdrop.live-webcam-backdrop{place-items:center;padding:12px}.settings-modal.webcam-modal{width:min(1220px,calc(100vw - 24px));max-height:calc(100vh - 24px)}.modal-actions{position:sticky;bottom:-14px;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin:10px -14px -14px;padding:10px 14px 14px;border-top:1px solid var(--line);background:#fffffff5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal-progress{flex:1 1 260px;min-width:220px;max-width:520px;margin-right:auto}.modal-progress div:first-child{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px;font-weight:800;margin-bottom:5px}.modal-progress strong{color:var(--text)}.modal-progress .progress-bar{height:7px}.modal-progress-detail{display:block;margin-top:5px;color:var(--muted);font-size:12px;font-weight:700}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes progress-slide{0%{transform:translate(-110%)}55%{transform:translate(110%)}to{transform:translate(260%)}}@keyframes irrigation-rain{0%{background-position:0 -34px,18px -34px,7px -34px;transform:translateY(-8px) rotate(18deg)}to{background-position:0 34px,18px 58px,7px 82px;transform:translateY(12px) rotate(18deg)}}@keyframes glass-rain{0%{background-position:0 -42px,18px -58px,7px -76px;transform:translateY(-6px)}to{background-position:0 42px,18px 58px,7px 76px;transform:translateY(10px)}}@keyframes weather-glow{0%,to{filter:saturate(1) brightness(1);transform:translateZ(0)}50%{filter:saturate(1.12) brightness(1.02);transform:translate3d(0,-4px,0)}}@keyframes confetti-fall{0%{transform:translateY(-20px) translate(0) rotate(var(--r, 0deg))}70%{opacity:.95}to{transform:translateY(110vh) translate(34px) rotate(calc(var(--r, 0deg) + 240deg));opacity:0}}@media(prefers-reduced-motion:reduce){.active-run-card:before,.sidebar-training-active:before,.confetti-screen i,.training-index-row.status-active:before,.run-row.active-running:before{animation:none}.rain-overlay{display:none}.grow-plant,.grow-plant .plant-svg,.grow-plant .bloom{animation:none}.leaf-fall{display:none}}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;display:grid;grid-template-columns:1fr}.workspace{padding:0}.project-switcher,.topnav{grid-column:1 / -1}.page-grid,.dashboard-grid,.settings-grid,.form-grid,.form-grid.two,.form-grid.three,.form-grid.four,.select-grid,.dataset-layout,.workflow-grid,.training-page,.training-split-panels,.viewer-grid,.eval-score-layout,.chart-pair,.webcam-layout,.mcp-register-grid,.shipping-grid,.ship-format-grid,.shipment-console{grid-template-columns:1fr}.model-eval-head{flex-direction:column}.model-score-strip{grid-template-columns:repeat(2,minmax(120px,1fr))}.training-index{position:static;max-height:none}.metrics-strip,.ai-diagnosis-stats{grid-template-columns:repeat(2,minmax(120px,1fr))}.system-metrics-widget{min-width:100%}.system-metrics-widget .metric-card-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}.dashboard-metrics,.dashboard-storage-row{grid-template-columns:repeat(2,minmax(120px,1fr))}.distribution-row{grid-template-columns:1fr}.distribution-row dl,.distribution-actions{justify-content:flex-start}.run-history-row{grid-template-columns:1fr}.webcam-stage{min-height:240px}}@media(max-width:560px){.model-score-strip{grid-template-columns:1fr}.compact-tabs{width:100%}.compact-tabs button{flex:1}.system-metrics-widget .metric-card-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}.dashboard-metrics,.dashboard-storage-row{grid-template-columns:1fr}.dashboard-storage-row .disk-usage-summary{grid-column:span 1}}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.panel-head h1{display:flex;align-items:center;gap:8px}.panel-head p{color:var(--muted);margin-top:4px}.panel-block{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}.panel-block:first-of-type{border-top:none;padding-top:0;margin-top:0}.block-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.block-head h2{font-size:15px}.muted{color:var(--muted)}.test-run-bar{background:var(--panel-muted);border:1px solid var(--line);padding:12px}.test-run-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px}.test-case-list{display:flex;flex-direction:column;gap:6px}.test-case-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;padding:8px 12px;border:1px solid var(--line);background:var(--panel)}.test-case-row.disabled-row{opacity:.5}.test-case-main{display:flex;flex-direction:column;min-width:0}.test-case-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.test-case-count{color:var(--muted);font-size:13px;white-space:nowrap}.test-case-actions{display:flex;gap:4px}.test-case-row .checkbox-field{margin:0}.test-result-list{display:flex;flex-direction:column;gap:6px}.test-result-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:14px;padding:10px 12px;border:1px solid var(--line);background:var(--panel);text-align:left;cursor:pointer;width:100%}.test-result-row:hover{border-color:var(--line-strong)}.test-result-main{display:flex;flex-direction:column;min-width:0}.test-result-score{display:flex;gap:10px;font-size:13px;font-weight:700}.test-result-review{display:flex;gap:8px;font-size:12px}.test-result-review .ok,.ok{color:var(--ok)}.test-result-review .ng,.ng{color:var(--danger)}.status-chip{font-size:11px;padding:2px 8px;border-radius:10px;background:var(--panel-muted);border:1px solid var(--line);text-transform:uppercase}.status-chip.completed{background:#e6f4ea;color:var(--ok);border-color:#b7e0c4}.status-chip.running,.status-chip.queued{background:#fff4e0;color:#9a6700;border-color:#f0d59a}.status-chip.failed{background:#fde8e8;color:var(--danger);border-color:#f3b6b6}.test-result-summary-strip{display:flex;gap:18px;flex-wrap:wrap;background:var(--panel-muted);border:1px solid var(--line);padding:12px 16px;margin-bottom:12px}.test-result-summary-strip .metric{display:flex;flex-direction:column}.test-result-summary-strip .metric span{font-size:12px;color:var(--muted)}.test-result-summary-strip .metric strong{font-size:18px}.test-flags-summary{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.flag-badge{font-size:12px;padding:2px 8px;background:#fff4e0;color:#9a6700;border:1px solid #f0d59a;border-radius:10px}.class-badge{font-size:12px;padding:2px 8px;background:var(--panel-muted);border:1px solid var(--line);border-radius:10px}.test-image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.test-image-card{position:relative;border:2px solid var(--line);background:var(--panel-muted);padding:0;cursor:pointer;overflow:hidden}.test-image-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.test-image-card.verdict-ok{border-color:var(--ok)}.test-image-card.verdict-ng{border-color:var(--danger)}.test-image-card-foot{display:flex;align-items:center;gap:6px;padding:4px 6px;font-size:12px;color:var(--muted)}.test-image-card-foot .warn{color:#9a6700}.verdict-dot{width:9px;height:9px;border-radius:50%;background:var(--line-strong)}.test-image-card.verdict-ok .verdict-dot{background:var(--ok)}.test-image-card.verdict-ng .verdict-dot{background:var(--danger)}.modal-backdrop.test-lightbox-backdrop{place-items:center;padding:16px}.test-lightbox{background:var(--panel);width:min(1100px,92vw);height:min(760px,86vh);min-width:520px;min-height:380px;max-width:98vw;max-height:calc(100vh - 24px);display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 24px 70px #080c1280;resize:both}.test-lightbox.fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;max-width:none;max-height:none;border:none;border-radius:0;resize:none}.lightbox-head-actions{display:flex;gap:4px;align-items:center}.test-lightbox .modal-head{margin:0;padding:13px 14px 13px 20px;align-items:center;border-bottom:1px solid var(--line);background:var(--panel)}.test-lightbox .modal-head strong{font-size:15px}.test-lightbox-stage{position:relative;display:flex;align-items:center;justify-content:center;background:#0e0f12;padding:22px;min-height:0;flex:1}.zoom-img-wrap{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none}.zoom-img-wrap img{width:100%;height:100%;object-fit:contain;display:block;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;will-change:transform}.zoom-badge{position:absolute;left:12px;bottom:12px;font-size:12px;padding:2px 8px;border-radius:10px;background:#0000008c;color:#fff}.test-lightbox-stage .icon-button.nav{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:46px;height:46px;border-radius:50%;background:#ffffff24;border:1px solid rgba(255,255,255,.18);color:#fff;display:flex;align-items:center;justify-content:center;transition:background .12s ease}.test-lightbox-stage .icon-button.nav:hover{background:#ffffff4d}.test-lightbox-stage .icon-button.nav:disabled{opacity:.25;cursor:default}.test-lightbox-stage .icon-button.nav.prev{left:16px}.test-lightbox-stage .icon-button.nav.next{right:16px}.test-lightbox-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;flex-wrap:wrap;border-top:1px solid var(--line);background:var(--panel-muted)}.test-lightbox-flags{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.test-verdict-buttons{display:flex;gap:8px}.test-verdict-buttons button{min-width:92px;justify-content:center}.test-case-main.as-button{background:none;border:none;text-align:left;cursor:pointer;padding:0;display:flex;flex-direction:column}.test-case-main.as-button:hover strong{text-decoration:underline}.test-case-count.as-link{background:none;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:4px;color:var(--muted)}.test-case-count.as-link:hover{color:var(--accent)}.test-image-card .img-open{background:none;border:none;padding:0;cursor:pointer;display:block;width:100%}.test-image-card.view-only{cursor:default}.test-image-card-foot .icon-button.small,.icon-button.small{padding:2px}.report-create-form{display:flex;flex-direction:column;gap:14px}.report-result-list{display:flex;flex-direction:column;gap:4px;max-height:220px;overflow-y:auto;border:1px solid var(--line);border-radius:8px;padding:6px}.report-result-row{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:6px;cursor:pointer;font-size:.9rem}.report-result-row:hover{background:var(--panel-muted)}.report-result-row.selected{background:#e8f3ef}.report-result-name{font-weight:600}.report-layout{display:grid;grid-template-columns:280px 1fr;gap:16px;align-items:start;margin-top:12px}.report-list{display:flex;flex-direction:column;gap:6px}.report-list-item{display:flex;flex-direction:column;gap:3px;text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);cursor:pointer;width:100%}.report-list-item:hover{border-color:var(--line-strong)}.report-list-item.active{border-color:var(--accent);background:#f0f7f4}.report-list-title{font-weight:600;font-size:.92rem}.report-list-meta{display:flex;align-items:center;gap:8px;font-size:.8rem}.report-status{font-size:.72rem;padding:1px 7px;border-radius:999px;background:var(--panel-muted);color:var(--muted)}.report-status.completed{background:#e3f3ea;color:var(--ok)}.report-status.running,.report-status.queued{background:#eef3fb;color:var(--accent-2)}.report-status.failed{background:#fbeaec;color:var(--danger)}.report-detail{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:14px;min-height:480px}.report-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}.report-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.report-preview{width:100%;height:70vh;border:1px solid var(--line);border-radius:10px;background:#fff}.report-editor{width:100%;height:70vh;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86rem;line-height:1.55;padding:12px;border:1px solid var(--line-strong);border-radius:10px}@media(max-width:900px){.report-layout{grid-template-columns:1fr}}.report-head-actions{display:flex;align-items:center;gap:10px}.report-id-input{padding:4px 8px;border:1px solid var(--line-strong);border-radius:6px;font-size:.85rem;width:160px}.anno-panel{display:flex;flex-direction:column;gap:12px}.anno-head-actions{display:flex;align-items:center;gap:8px}.anno-tabs{display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--line);flex-wrap:wrap}.anno-tab{background:transparent;border:1px solid transparent;border-bottom:none;padding:8px 14px;cursor:pointer;font-size:.9rem;color:var(--muted);border-radius:6px 6px 0 0}.anno-tab:hover{background:#f2f6f9;color:var(--text)}.anno-tab.active{background:var(--panel);border-color:var(--line);border-bottom-color:var(--panel);color:var(--text);font-weight:600;margin-bottom:-1px}.anno-tab-spacer{flex:1}.anno-current{font-size:.82rem}.anno-draft-picker{display:flex;align-items:center;gap:6px;font-size:.82rem}.anno-draft-picker select{max-width:320px}.anno-tab-help{display:flex;align-items:flex-start;gap:8px;margin:8px 0 2px;padding:8px 12px;background:#eef6fb;border:1px solid #cfe4f2;border-left:3px solid #4a90c2;border-radius:8px;color:#355;font-size:.85rem;line-height:1.5}.anno-tab-help svg{flex:none;margin-top:2px;color:#4a90c2}.anno-tab-body{padding-top:6px}.anno-classbar{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:8px 10px;margin-bottom:8px;background:#f6f8fa;border:1px solid var(--line);border-radius:8px}.anno-classbar-label{font-size:.82rem;color:var(--muted);margin-right:2px}.anno-classchip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;background:#fff;border:1px solid #cdd8e0;border-radius:999px;font-size:.84rem;color:var(--text)}.anno-classchip-id{color:#4a90c2;font-variant-numeric:tabular-nums}.anno-classchip-x{display:inline-flex;align-items:center;padding:1px;margin-left:2px;border:none;background:transparent;color:#b0bcc6;cursor:pointer;border-radius:50%}.anno-classchip-x:hover{background:#fbe3e3;color:#c0392b}.anno-classchip-x:disabled{opacity:.4;cursor:default}.anno-classchip-add{padding:3px 10px;border:1px dashed #9bb3c4;background:transparent;border-radius:999px;font-size:.82rem;color:#3a6f97;cursor:pointer}.anno-classchip-add:hover{background:#eef6fb}.anno-classclear{margin-left:auto;padding:3px 10px;border:1px solid #e6c5c5;background:transparent;border-radius:999px;font-size:.78rem;color:#b04a4a;cursor:pointer}.anno-classclear:hover:not(:disabled){background:#fbe9e9}.anno-classclear:disabled{opacity:.5;cursor:default}.anno-classadd{display:inline-flex;align-items:center;gap:4px}.anno-classadd-input{padding:3px 8px;border:1px solid #9bb3c4;border-radius:6px;font-size:.84rem;width:130px}.anno-classadd-ok{padding:3px 10px;border:none;background:var(--accent, #2f7d4f);color:#fff;border-radius:6px;font-size:.82rem;cursor:pointer}.anno-classadd-ok:disabled{opacity:.5;cursor:default}.anno-classadd-x{display:inline-flex;padding:3px;border:none;background:transparent;color:var(--muted);cursor:pointer}.anno-expander{display:inline-flex;align-items:center;gap:6px;background:transparent;border:none;cursor:pointer;color:var(--text);font-size:.9rem;padding:4px 0}.anno-expander-body{padding:8px 0 4px 18px;display:flex;flex-direction:column;gap:8px}.anno-prompt{width:100%;min-width:280px}.anno-omakase{font-weight:600}.anno-canvas-top{flex-wrap:wrap;position:sticky;top:0;z-index:6;background:var(--panel);padding:6px 0}.anno-canvas-hint{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:2px 4px 0}.anno-keyhint{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:.82em;color:var(--muted)}.anno-keyhint kbd{background:var(--line);border-radius:4px;padding:1px 6px;font-size:.9em;font-family:inherit;margin:0 1px}.anno-toolbar-sep{width:1px;align-self:stretch;background:var(--line);margin:0 4px}.anno-canvas-grid{display:grid;grid-template-columns:64px minmax(0,1fr) 280px;gap:12px;align-items:start}.anno-tool-rail{display:flex;flex-direction:column;gap:6px;position:sticky;top:62px}.anno-tool{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px;border:1px solid var(--line);background:#fff;border-radius:8px;cursor:pointer;color:var(--text);font-size:.66rem;line-height:1}.anno-tool span{font-size:.66rem}.anno-tool:hover:not(:disabled){background:#f2f6f9}.anno-tool.active{background:#e7f1f8;border-color:#4a90c2;color:#2b6a96;font-weight:600}.anno-tool:disabled{opacity:.4;cursor:default}.anno-tool-sep{height:1px;background:var(--line);margin:2px 4px}.anno-shape-count{margin:4px 0 6px;font-size:.8rem}@media(max-width:900px){.anno-canvas-grid{grid-template-columns:56px minmax(0,1fr)}.anno-canvas-grid .sample-panel{grid-column:1 / -1}}.anno-tool-group{display:inline-flex;gap:4px}.anno-tool-group .secondary.active{background:#e7f4f0;border-color:#a5d4c6;color:#075946}.anno-table{width:100%;border-collapse:collapse;font-size:.85rem}.anno-table th,.anno-table td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}.anno-table th{color:var(--muted);font-weight:600}.anno-row-removed{opacity:.5}.anno-class-chip{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 6px;border-radius:10px;color:#fff;font-size:.72rem;font-weight:700}.anno-alias-list{display:flex;flex-wrap:wrap;gap:4px}.anno-alias{background:#eef2f6;border-radius:4px;padding:1px 6px;font-size:.76rem}.anno-alias-add{display:flex;align-items:center;gap:4px;margin-top:4px}.anno-alias-add input{width:140px}.anno-shape-list{display:flex;flex-direction:column;gap:4px;max-height:56vh;overflow:auto;padding-bottom:168px}.anno-shape-row{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:6px;border:1px solid var(--line);cursor:pointer;font-size:.82rem}.anno-shape-row.selected{border-color:var(--accent);background:#f0faf6}.anno-shape-row.status-rejected{opacity:.55}.anno-shape-row select{flex:1;min-width:0}.anno-class-dot{width:12px;height:12px;border-radius:3px;flex:0 0 12px}.anno-conf{font-variant-numeric:tabular-nums;color:var(--muted);width:38px;text-align:right}.anno-status{font-size:.72rem;padding:1px 6px;border-radius:4px;white-space:nowrap}.anno-status-pending{background:#fef3c7;color:#92400e}.anno-status-accepted{background:#dcfce7;color:#166534}.anno-status-rejected{background:#fee2e2;color:#991b1b}.anno-status-edited,.anno-status-running,.anno-status-queued{background:#e0f2fe;color:#075985}.anno-status-completed{background:#dcfce7;color:#166534}.anno-status-failed{background:#fee2e2;color:#991b1b}.anno-status-planned{background:#eef2f6;color:#475569}.anno-inline-check{display:inline-flex;align-items:center;gap:4px;font-size:.82rem}.anno-err-text{color:#b91c1c;font-size:.78rem}.anno-editor-stage{-webkit-user-select:none;user-select:none;width:fit-content;max-width:100%;margin:0 auto}.anno-editor-stage img{width:auto;height:auto;max-width:100%;max-height:calc(100vh - 270px)}.anno-overlay-interactive{pointer-events:none}.anno-overlay-interactive g{pointer-events:auto}.anno-image-missing{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--muted);font-size:.85rem}.anno-selected-shape{margin-top:10px;display:flex;flex-direction:column;gap:8px}.anno-preview-actions{display:flex;flex-direction:column;gap:2px}.anno-preview-commit{display:flex;align-items:center;gap:6px;margin-top:4px;flex-wrap:wrap}.anno-preview-commit select{flex:1;min-width:90px}.anno-gallery-filter{display:flex;align-items:center;gap:6px;margin:6px 0;flex-wrap:wrap}.anno-gallery-filter button{padding:3px 12px;border:1px solid var(--line);background:#fff;border-radius:999px;cursor:pointer;font-size:.85rem;color:var(--text)}.anno-gallery-filter button.active{background:#e7f1f8;border-color:#4a90c2;color:#2b6a96;font-weight:600}.wb-panel{display:flex;flex-direction:column;gap:10px}.wb-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.wb-head-left h1{display:flex;align-items:center;gap:8px}.wb-head-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.wb-head-right select{max-width:240px}.wb-progress{font-size:.95rem;white-space:nowrap}.wb-use-menu{position:relative}.wb-use-menu>summary{list-style:none;cursor:pointer;padding:6px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;font-weight:600}.wb-use-menu>summary::-webkit-details-marker{display:none}.wb-use-pop{position:absolute;right:0;top:calc(100% + 4px);z-index:20;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:6px;display:flex;flex-direction:column;gap:4px;min-width:180px}.wb-use-pop button{display:flex;align-items:center;gap:6px;padding:8px 10px;border:none;background:none;cursor:pointer;border-radius:6px;text-align:left;color:var(--text)}.wb-use-pop button:hover:not(:disabled){background:var(--panel-muted)}.wb-use-pop button:disabled{opacity:.4;cursor:default}.wb-ai-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;background:var(--panel-muted);border:1px solid var(--line);border-radius:10px}.wb-ai-label{font-weight:700}.wb-ai-input{flex:1;min-width:240px}.wb-ai-engine{min-width:96px;height:34px}.wb-ai-bar .primary{font-weight:700}.wb-classbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.wb-class-add{width:130px}.wb-filter{display:flex;gap:6px}.wb-filter button{padding:4px 12px;border:1px solid var(--line);background:#fff;border-radius:999px;cursor:pointer;font-size:.85rem;color:var(--text)}.wb-filter button.active{background:#e7f1f8;border-color:#4a90c2;color:#2b6a96;font-weight:600}.wb-filter-n{margin-left:6px;opacity:.7;font-size:.8em}.wb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.wb-more-sentinel{grid-column:1 / -1;height:1px}.wb-thumb{position:relative;padding:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;cursor:pointer;background:#0f1720;aspect-ratio:1 / 1}.wb-thumb img{width:100%;height:100%;object-fit:cover;display:block}.wb-thumb:hover{outline:2px solid #4a90c2}.wb-thumb-dot{position:absolute;top:6px;left:6px;width:12px;height:12px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 2px #0006}.wb-thumb-badge{position:absolute;bottom:6px;right:6px;background:#111827d9;color:#fff;font-size:.72rem;padding:1px 6px;border-radius:999px}.wb-empty{padding:24px 8px}.wb-hint{margin-top:2px}.anno-preview{margin-top:10px;display:flex;flex-direction:column;gap:8px}.anno-preview-stats{display:flex;flex-wrap:wrap;gap:12px;list-style:none;padding:0;margin:0}.anno-preview-stats li{font-size:.85rem;color:var(--muted)}.anno-preview-stats strong{color:var(--text)}.anno-gallery{display:flex;flex-direction:column;gap:12px}.anno-gallery-pick{align-items:flex-end}.anno-actionbar{display:flex;flex-direction:column;gap:8px;padding:10px 12px;background:var(--panel-muted, #f6f8fa);border:1px solid var(--border, #e5e7eb);border-radius:10px}.anno-actionbar-hint{align-items:center;gap:14px;flex-wrap:wrap}.anno-expander.inline{background:none;border:none;color:var(--muted);cursor:pointer;padding:2px 4px;font-size:.85em;display:inline-flex;align-items:center;gap:3px}.anno-split-tabs{display:flex;gap:6px;flex-wrap:wrap}.anno-split-tabs button{border:1px solid var(--border, #e5e7eb);background:var(--panel, #fff);border-radius:999px;padding:3px 12px;cursor:pointer;font-size:.85em;color:var(--text)}.anno-split-tabs button.active{background:var(--accent, #16a34a);color:#fff;border-color:var(--accent, #16a34a)}.anno-gallery-count{margin:0}.anno-gallery-empty{padding:32px 8px;text-align:center}.anno-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px}.anno-gallery-pager{display:flex;align-items:center;justify-content:center;gap:14px;padding:14px 0 4px}.anno-thumb{padding:0;border:1px solid var(--border, #e5e7eb);border-radius:8px;overflow:hidden;background:#0b0e13;cursor:zoom-in;aspect-ratio:4 / 3}.anno-thumb img{width:100%;height:100%;object-fit:cover;display:block}.anno-thumb:hover{outline:2px solid var(--accent, #16a34a)}.anno-jobs{margin-top:4px}.anno-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000c7;display:flex;align-items:center;justify-content:center;z-index:1000}.anno-lightbox-body{position:relative;max-width:92vw;max-height:92vh;display:flex;flex-direction:column;gap:6px}.anno-lightbox-body img{max-width:92vw;max-height:84vh;object-fit:contain;border-radius:8px}.anno-lightbox-body .muted{color:#cbd5e1;text-align:center}.anno-lightbox-classcounts{display:inline-flex;flex-wrap:wrap;gap:8px;margin-left:8px}.anno-lightbox-classcounts span{display:inline-flex;align-items:center;gap:4px;font-size:.92em}.anno-lightbox-classcounts span i{width:10px;height:10px;border-radius:3px;display:inline-block}.anno-lightbox-classcounts .cc-dim{opacity:.45}.anno-lightbox-classcounts .cc-focus{color:#fff;font-weight:700}.anno-lightbox-edit{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:center;padding:6px 8px;background:#ffffff0f;border-radius:8px}.anno-lightbox-edit .muted{color:#cbd5e1}.anno-edit-shape{display:inline-flex;align-items:center;gap:4px;padding:2px 4px;border-radius:6px;cursor:pointer}.anno-edit-shape.sel{background:#ffffff29;outline:1px solid rgba(255,255,255,.4)}.anno-edit-shape i{width:10px;height:10px;border-radius:3px;display:inline-block}.anno-edit-shape select{font-size:.85em}.anno-edit-msg{font-size:.85em;font-weight:700}.anno-edit-msg.ok{color:#22c55e}.anno-edit-msg.err{color:#f87171}.anno-lightbox-close{position:absolute;top:-14px;right:-14px;background:#fff;border:none;border-radius:999px;width:30px;height:30px;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2}.anno-lightbox-body{align-items:center}.anno-lightbox-stage{position:relative;display:inline-block;line-height:0}.anno-lightbox-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.anno-thumb{position:relative}.anno-thumb-badge{position:absolute;top:4px;right:4px;background:#16a34a;color:#fff;font-size:.7em;font-weight:700;line-height:1;padding:2px 6px;border-radius:999px}.copilot-fab.resting{opacity:.9}.copilot-fab.resting .kakashi{transform:translate(-48px) rotate(80deg);transform-origin:50% 100%;transition:transform .4s ease}.copilot-zzz{position:absolute;top:0;right:2px;font-weight:800;color:#64748b;pointer-events:none;letter-spacing:1px;z-index:1}.copilot-zzz small{font-size:.7em;opacity:.65}.anno-lightbox-body img{max-width:96vw;max-height:90vh}.anno-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffffeb;border:none;border-radius:999px;width:46px;height:46px;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:3}.anno-lightbox-nav.prev{left:14px}.anno-lightbox-nav.next{right:14px}.anno-lightbox-nav:disabled{opacity:.25;cursor:default}.metric-card-grid{gap:5px}.metric-card{padding:4px 8px;overflow:hidden}.metric-card svg{width:100%;max-width:100%;display:block}.metric-card>div{display:flex;justify-content:space-between;align-items:baseline;gap:6px;white-space:nowrap}.metric-card>div span{white-space:nowrap;font-size:.72em;color:var(--muted)}.metric-card>div strong{white-space:nowrap;font-size:.92em}.metric-card small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;font-size:.68em}.disk-usage-summary.compact{font-size:.78rem}.disk-usage-summary.compact .disk-usage-title strong{font-size:.92em}.disk-stack{position:relative;height:12px;background:var(--track, #e6e9ee);border-radius:6px;overflow:hidden;margin:5px 0}.disk-stack-seg{position:absolute;left:0;top:0;bottom:0;border-radius:6px}.disk-stack-seg.host{background:#94a3b8}.disk-stack-seg.hub{background:#16a34a}.disk-stack-seg.project{background:#2563eb}.disk-stack-legend{display:flex;flex-wrap:wrap;gap:3px 12px;font-size:.7em;color:var(--muted)}.disk-stack-legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:4px;vertical-align:middle}.disk-stack-legend i.host{background:#94a3b8}.disk-stack-legend i.hub{background:#16a34a}.disk-stack-legend i.project{background:#2563eb}.anno-running{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;font-size:.9em;color:#065f46}.anno-progress{flex:1 1 160px;min-width:140px;height:8px;background:#d1fae5;border-radius:999px;overflow:hidden}.anno-progress-bar{height:100%;background:#16a34a;transition:width .4s ease}.anno-done{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 14px;border-radius:8px;font-size:.9em;border:1px solid;margin:2px 0}.anno-done.ok{background:#ecfdf5;border-color:#6ee7b7;color:#065f46}.anno-done.warn{background:#fffbeb;border-color:#fde68a;color:#92400e}.anno-done.error{background:#fef2f2;border-color:#fecaca;color:#991b1b}.anno-done-body{flex:1 1 240px}.anno-done-actions{display:flex;gap:8px;flex-shrink:0}.anno-engine-head{font-size:.8em;color:var(--muted);margin:2px 0 6px}.anno-engine-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;margin-bottom:10px}.anno-engine{text-align:left;padding:8px 10px;border:1px solid var(--border, #e5e7eb);border-radius:8px;background:var(--panel, #fff);cursor:pointer;display:flex;flex-direction:column;gap:3px}.anno-engine:hover{border-color:var(--accent, #16a34a)}.anno-engine.sel{border-color:var(--accent, #16a34a);box-shadow:0 0 0 1px var(--accent, #16a34a) inset;background:#f0fdf4}.anno-engine strong{font-size:.88em;display:flex;align-items:center;gap:6px}.anno-engine small{font-size:.76em;color:var(--muted);line-height:1.3}.anno-engine-need{color:#b45309!important}.anno-engine-tag{font-size:.66em;padding:0 5px;border-radius:4px;font-weight:700}.anno-engine-tag.api{background:#ede9fe;color:#6d28d9}.anno-engine-tag.local{background:#dcfce7;color:#166534}.anno-tryai{display:flex;align-items:center;gap:10px 12px;flex-wrap:wrap;padding:7px 12px;background:#f8fafc;border:1px solid var(--border, #e5e7eb);border-radius:8px;margin-bottom:8px}.anno-tryai>strong{font-size:.9em}.anno-try-dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin:0 3px 0 2px;vertical-align:middle}.anno-try-legend{font-size:.8em;color:var(--muted);display:inline-flex;align-items:center;gap:4px}.anno-try-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.anno-dropzone{display:flex;align-items:center;justify-content:center;gap:8px;padding:18px;border:2px dashed var(--border, #cbd5e1);border-radius:10px;color:var(--muted);font-size:.9em;background:#fafbfc}.anno-dropzone:hover{border-color:var(--accent, #16a34a);background:#f0fdf4}.axis-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.axis-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:16px;border:1px solid var(--line);background:var(--panel-muted);font-size:12.5px;cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--muted)}.axis-chip input{margin:0}.axis-chip.on{border-color:var(--accent);background:#e7f3ef;color:var(--accent);font-weight:600}.robust-run-params{display:flex;gap:14px;align-items:flex-end}.field.inline{flex-direction:column;gap:2px}.field.inline span{font-size:11px;color:var(--muted)}.field.inline input{width:80px}.robust-score{color:var(--accent);font-weight:800;font-size:15px}.robust-summary{display:flex;align-items:center;gap:22px;margin-top:10px;flex-wrap:wrap}.robust-score-big{display:flex;flex-direction:column;align-items:center;padding:10px 20px;border:1px solid var(--line);border-radius:12px;background:var(--panel-muted)}.robust-score-big .label{font-size:11px;color:var(--muted)}.robust-score-big .value{font-size:36px;font-weight:800;color:var(--accent);line-height:1.1}.robust-meta{display:flex;flex-direction:column;gap:3px;font-size:13px}.axis-score-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-top:6px}.axis-score-cell{display:flex;justify-content:space-between;align-items:center;padding:7px 11px;border:1px solid var(--line);border-radius:8px;background:var(--panel-muted)}.axis-score-cell .axis-name{font-size:12px;color:var(--muted)}.axis-score-cell .axis-val{font-size:15px;font-weight:700;color:var(--text)}.weak-list{margin:6px 0 0;padding-left:18px;font-size:13px;line-height:1.7}.robust-report-frame{width:100%;height:1600px;border:1px solid var(--line);border-radius:8px;background:#fff}.button-link{display:inline-flex;align-items:center;gap:6px;text-decoration:none}.log-modal{max-width:980px;width:92vw}.log-pre{margin:8px 0;max-height:62vh;overflow:auto;background:#0f172a;color:#e2e8f0;border-radius:8px;padding:14px 16px;font-family:Noto Sans Mono CJK JP,DejaVu Sans Mono,monospace;font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word}.hdr-menu-sep{height:1px;background:var(--line, #dce3ea);margin:5px 4px}.ai-flag-gallery{margin-top:10px;border-top:1px solid var(--line, #dce3ea);padding-top:8px}.ai-flag-gallery .collapsible-title h4{display:flex;align-items:center;gap:6px;margin:0;font-size:13px}.ai-flag-gallery .muted{color:var(--muted, #8b97a3);font-weight:400}.ai-flag-group{margin:8px 0}.ai-flag-group-head{display:flex;align-items:center;gap:8px;margin-bottom:4px;font-size:12px}.ai-flag-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px;max-height:300px;overflow-y:auto;padding:2px}.ai-flag-thumb{position:relative;aspect-ratio:1 / 1;border:2px solid transparent;border-radius:8px;overflow:hidden;cursor:pointer;background:var(--panel-2, #f1f4f7)}.ai-flag-thumb img{width:100%;height:100%;object-fit:cover;display:block}.ai-flag-thumb.selected{border-color:var(--accent, #2f7d4f);box-shadow:0 0 0 2px #2f7d4f40}.ai-flag-thumb input[type=checkbox]{position:absolute;top:4px;right:4px;width:18px;height:18px;cursor:pointer;z-index:2}.ai-flag-noimg{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:10px;color:var(--muted, #8b97a3)}.ai-flag-note{font-size:11px;margin:4px 0}.ai-flag-action-bar{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0 2px;background:var(--panel, #fff);border-top:1px solid var(--line, #dce3ea);margin-top:6px}.roboflow-panel .row-actions{display:flex;align-items:center;gap:10px}.roboflow-panel .ghost,.rf-grid-head .ghost{background:transparent;border:1px solid var(--border);color:var(--text);border-radius:7px;padding:4px 10px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;font-size:.85em}.roboflow-panel .ghost:hover{background:var(--panel-muted)}.rf-alias-row .icon-btn{background:transparent;border:1px solid var(--border);border-radius:6px;cursor:pointer;color:var(--muted);padding:4px;display:inline-flex}.rf-chat{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow-y:auto;padding:6px 2px}.rf-chat-hint{color:var(--muted);font-size:.9em;display:flex;align-items:center;gap:6px;padding:10px;background:var(--panel-muted);border-radius:8px}.rf-msg{display:flex}.rf-msg-user{justify-content:flex-end}.rf-msg-assistant{justify-content:flex-start}.rf-msg-bubble{max-width:78%;padding:8px 12px;border-radius:12px;font-size:.92em;line-height:1.5;white-space:pre-wrap}.rf-msg-user .rf-msg-bubble{background:var(--accent);color:#fff;border-bottom-right-radius:3px}.rf-msg-assistant .rf-msg-bubble{background:var(--panel-muted);color:var(--text);border-bottom-left-radius:3px}.rf-chat-input{display:flex;gap:8px;margin-top:10px}.rf-chat-input input{flex:1;padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text)}.rf-chat-input .primary{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.rf-queries{margin-top:8px;font-size:.82em;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.rf-chip{background:var(--panel-muted);border:1px solid var(--border);border-radius:999px;padding:1px 9px;font-size:.92em}.rf-grid-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.rf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}.rf-card{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--panel);cursor:pointer;transition:box-shadow .12s,border-color .12s;display:flex;flex-direction:column}.rf-card:hover{box-shadow:var(--shadow)}.rf-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}.rf-card-img{position:relative;aspect-ratio:4 / 3;background:var(--panel-muted);overflow:hidden}.rf-card-img img{width:100%;height:100%;object-fit:cover;display:block}.rf-card-noimg{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--muted)}.rf-badge{position:absolute;top:6px;font-size:.72em;padding:2px 7px;border-radius:999px;display:inline-flex;align-items:center;gap:3px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.rf-badge-rec{left:6px;background:#ffc107eb;color:#4a3500;font-weight:700}.rf-badge-rel{right:6px;background:#0000009e;color:#fff}.rf-check{position:absolute;bottom:6px;right:6px;background:var(--accent);color:#fff;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.rf-card-body{padding:8px 10px;display:flex;flex-direction:column;gap:4px}.rf-card-name{font-weight:600;font-size:.9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rf-card-summary{font-size:.8em;color:var(--muted);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.rf-card-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:.78em}.rf-card-license{font-size:.75em}.rf-card-link{font-size:.78em;color:var(--accent);text-decoration:none;display:inline-flex;align-items:center;gap:3px;margin-top:2px}.rf-actionbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px;padding:12px 14px;background:var(--panel-muted);border-radius:10px}.rf-actionbar>span{display:inline-flex;align-items:center;gap:6px;font-weight:600}.rf-actionbar .primary{display:inline-flex;align-items:center;gap:6px}.rf-progress{height:10px;background:var(--panel-muted);border-radius:999px;overflow:hidden;margin:6px 0 10px}.rf-progress-bar{height:100%;background:var(--accent);transition:width .4s ease}.rf-log{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8em;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px 10px;max-height:180px;overflow-y:auto}.rf-log-line{padding:1px 0}.rf-log-line.tone-error{color:var(--danger)}.rf-log-line.tone-success{color:var(--ok)}.rf-finalize .rf-staged{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.rf-staged-item{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel)}.rf-staged-classes{font-size:.8em;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rf-classes,.rf-aliases{margin-top:14px}.rf-classnames{width:100%;border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em;background:var(--bg);color:var(--text);resize:vertical}.rf-notes{font-size:.82em;margin:2px 0 6px}.rf-alias-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}.rf-alias-row input{flex:1;padding:6px 9px;border:1px solid var(--border);border-radius:7px;background:var(--bg);color:var(--text)}.rf-alias-row span{color:var(--muted)}.rf-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#000000d1;display:flex;align-items:center;justify-content:center;padding:28px}.rf-lightbox figure{margin:0;max-width:92vw;max-height:92vh;display:flex;flex-direction:column;gap:8px}.rf-lightbox img{max-width:92vw;max-height:82vh;object-fit:contain;border-radius:8px}.rf-lightbox figcaption{color:#fff;text-align:center;font-size:.9em}.rf-lightbox-close{position:absolute;top:18px;right:22px;background:#ffffff26;border:none;color:#fff;border-radius:8px;padding:8px;cursor:pointer}.rf-card-img .rf-img-base{width:100%;height:100%;object-fit:cover;display:block}.rf-card-img .rf-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.rf-lightbox-img{position:relative;display:inline-block;line-height:0}.rf-lightbox-img .rf-img-base{max-width:92vw;max-height:82vh;object-fit:contain}.rf-lightbox-img .rf-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.rf-stage{display:flex;align-items:center;gap:8px;color:var(--muted);margin-bottom:10px;font-size:.9em}.rf-skel{pointer-events:none}.rf-shimmer,.rf-skel-line{background:linear-gradient(100deg,var(--panel-muted) 30%,rgba(255,255,255,.18) 50%,var(--panel-muted) 70%);background-size:200% 100%;animation:rf-shimmer 1.2s infinite linear}.rf-skel .rf-card-img{aspect-ratio:4/3}.rf-skel-line{height:10px;border-radius:4px;margin:6px 0}@keyframes rf-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.rf-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.rf-fchip{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:999px;padding:4px 12px;cursor:pointer;font-size:.85em}.rf-fchip.active{background:var(--accent);color:#fff;border-color:var(--accent)}.rf-minimg{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:.85em;margin-left:6px}.rf-minimg input{width:90px;padding:4px 8px;border:1px solid var(--border);border-radius:7px;background:var(--bg);color:var(--text)}.rf-detail-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#000000b8;display:flex;align-items:center;justify-content:center;padding:28px}.rf-detail{position:relative;background:var(--panel);border-radius:14px;max-width:880px;width:100%;max-height:88vh;overflow:auto;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:0;box-shadow:var(--shadow)}.rf-detail-img{background:var(--panel-muted);display:flex;align-items:center;justify-content:center;min-height:320px}.rf-detail-img img{width:100%;height:100%;max-height:88vh;object-fit:contain}.rf-detail-body{padding:20px 22px;display:flex;flex-direction:column;gap:10px}.rf-detail-body h3{margin:0;display:flex;align-items:center}.rf-detail-summary{margin:0;font-weight:500}.rf-detail-stats{display:flex;flex-wrap:wrap;gap:12px;font-size:.85em;color:var(--muted)}.rf-detail-stats span{display:inline-flex;align-items:center;gap:4px}.rf-detail-classes{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.rf-detail-close{position:absolute;top:10px;right:10px;background:#00000073;color:#fff;border:none;border-radius:8px;padding:6px;cursor:pointer;z-index:2}@media(max-width:720px){.rf-detail{grid-template-columns:1fr}}.rf-msg-searching{display:inline-flex;align-items:center;gap:7px;color:var(--muted)}.rf-stage-big{font-size:1em;font-weight:600;color:var(--text);background:var(--panel-muted);border-radius:10px;padding:12px 14px}.rf-warn{color:#fff!important;background:var(--danger);border-radius:999px;padding:0 7px;font-size:.92em}.rf-detail-warn{display:flex;align-items:center;gap:6px;color:var(--danger);background:#c0392b14;border:1px solid var(--danger);border-radius:8px;padding:8px 10px;margin:0;font-size:.85em}.dface{display:block;border-radius:14px}.dface-wrap .dface,.dface-wrap .dface-photo{box-shadow:0 0 0 2px #6e8cff80,0 3px 12px #0f172a52;transition:box-shadow .15s ease,transform .15s ease}.dface-wrap:hover .dface,.dface-wrap:hover .dface-photo{box-shadow:0 0 0 2px #8cb9fff2,0 8px 22px #2850be80;transform:translateY(-1px)}.dface-photo{width:58px;height:58px;object-fit:cover;border-radius:14px;background:#0a0d16}.dface-photo.dface-empty{display:flex;align-items:center;justify-content:center;font-size:22px}.dface-triptych{gap:10px;flex-wrap:wrap;margin:2px 0}.dface-wrap{position:relative;display:inline-flex;flex-direction:column;align-items:center;gap:4px;flex:none;cursor:help}.dface-cap{font-size:9.5px;font-weight:700;color:#67707e;line-height:1}.dface-empty{display:flex;align-items:center;justify-content:center;background:#0a0d16;color:#5b6478;font-size:12px;font-weight:700}.dface-div-pending{color:#9aa6c2;font-weight:800}.dface-strip{display:flex;gap:8px;align-items:flex-start}.dface-compute{display:inline-flex;cursor:pointer;border-radius:11px;outline:1px dashed #5b6680;outline-offset:1px}.dface-compute:hover{outline-color:#7fb0ff}.dfm-faces{margin:7px 0 3px}.dface-pop{position:fixed;z-index:4000;width:224px;background:#0a0e18;border:1px solid #2b3650;border-radius:12px;padding:10px 12px;box-shadow:0 12px 32px #0000008c;display:flex;flex-direction:column;gap:5px;pointer-events:none}.dface-pop-title{font-size:10.5px;font-weight:800;padding:2px 9px;border-radius:20px;align-self:flex-start}.dface-pop-line{font-size:11px;color:#c4cfe4;line-height:1.55}.dface-pop.good .dface-pop-title{background:#2ec88c2e;color:#5fe0ab}.dface-pop.warn .dface-pop-title{background:#f0aa282e;color:#f6c052}.dface-pop.bad .dface-pop-title{background:#ff64822e;color:#ff9db3}.dface-pop.none .dface-pop-title{background:#96a2c22e;color:#aab6cf}.dface-pop.has-preview{width:232px}.dface-pop-preview{display:block;margin:0 0 8px;align-self:center}.dface-pop-preview svg{display:block;border-radius:16px;box-shadow:0 6px 18px #00000080}.dface-pop-img{display:block;width:208px;height:208px;object-fit:cover;border-radius:14px;box-shadow:0 6px 18px #00000080}
