:root{--primary: #106b3e;--primary-hover: #0d5a34;--primary-deep: #0a4529;--primary-soft: #eef6f1;--primary-softer: #f5faf7;--primary-line: #d4e5db;--violet: #7c3aed;--violet-soft: #ede9fe;--violet-line: #c4b5fd;--bg: #f6f8f6;--bg-soft: #eef2f0;--surface: #ffffff;--surface-2: #fafbfb;--border: #e5e7eb;--border-strong: #d1d5db;--text: #1f2937;--text-2: #4b5563;--muted: #9ca3af;--success: #10b981;--success-soft: #ecfdf5;--warn: #d97706;--warn-soft: #fffbeb;--danger: #dc2626;--danger-soft: #fef2f2;--danger-line: #fecaca;--brand: #106b3e;--brand-hover: #0d5a34;--brand-soft: #f2f6f3;--ink: #1e2d25;--ink-2: #4b5a51;--mute: #8a9a90;--line: #e3e9e5;--line-soft: #edf1ed;--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--radius-xl: 20px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow: 0 4px 14px rgba(15, 23, 42, .08);--shadow-lg: 0 14px 36px rgba(15, 23, 42, .12);--header-h: 56px;--sidebar-w: 220px;--font-sans: "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", "Source Han Sans SC", "Noto Sans CJK SC", -apple-system, BlinkMacSystemFont, "Segoe UI", "Figtree", "Helvetica Neue", Arial, sans-serif;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--radius-md: 9px;--radius-full: 999px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 8px 24px rgba(15, 23, 42, .12);--focus-ring: 0 0 0 3px rgba(16, 107, 62, .28);--fs-display: 44px;--fs-h1: 30px;--fs-h2: 22px;--fs-h3: 17px;--fs-body-lg: 16px;--fs-body: 14px;--fs-label: 13px;--fs-caption: 12px;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.6;font-weight:500}a{color:inherit;text-decoration:none}button{font-family:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;white-space:nowrap}.btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary);box-shadow:var(--shadow-sm)}.btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover);color:#fff}.btn-block{width:100%}.btn-lg{height:42px;padding:0 22px;font-size:14px}.btn-sm{height:28px;padding:0 12px;font-size:12.5px;border-radius:var(--radius-sm)}.btn-ghost{border-color:transparent;background:transparent}.btn-danger{color:var(--danger);border-color:var(--danger-line);background:var(--surface)}.btn-danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.input,.textarea,.select{width:100%;min-height:40px;padding:9px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:13px;font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s}.input:focus,.textarea:focus,.select:focus{border-color:var(--brand);box-shadow:var(--focus-ring)}.textarea{min-height:110px;resize:vertical;line-height:1.65}.field{margin-bottom:16px}.field>label{display:block;margin-bottom:6px;font-size:12.5px;font-weight:600;color:var(--text-2)}.field-hint{margin-top:5px;font-size:12px;color:var(--muted)}.field-warn,.field-grid label>span.field-warn{display:block;margin:6px 0 0;font-size:12px;color:var(--warn)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.tag{display:inline-flex;align-items:center;height:22px;padding:0 10px;border-radius:6px;font-size:11.5px;font-weight:500;line-height:1;background:var(--bg-soft);color:var(--text-2)}.tag-engine{background:var(--violet-soft);color:var(--violet)}.tag-eng-multi-image{background:#e8f1fd;color:#2f7de1}.tag-eng-single-image{background:#f1eafd;color:#7c3aed}.tag-quality{background:var(--primary-soft);color:var(--primary-deep);border:1px solid var(--primary-line);flex:none;white-space:nowrap}.tag-ready{background:var(--primary-soft);color:var(--primary-deep);border:1px solid var(--primary-line)}.tag-failed{background:var(--danger-soft);color:var(--danger)}.tag-warn{background:var(--warn-soft);color:var(--warn)}.tag-ready:before,.tag-failed:before,.tag-warn:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:5px}.tag-soft{background:var(--bg-soft);color:var(--text-2)}.tag-outline{background:transparent;border:1px solid var(--border-strong);color:var(--text-2)}.badge{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:20px;font-size:11.5px;font-weight:600;background:var(--bg-soft);color:var(--text-2)}.badge-success{background:var(--success-soft);color:var(--success)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-primary{background:var(--primary-soft);color:var(--primary)}.badge-success:before,.badge-warn:before,.badge-danger:before,.badge-primary:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:5px}.app-shell{min-height:100%;display:flex;flex-direction:column}.site-header{position:sticky;top:0;z-index:50;height:var(--header-h);display:flex;align-items:center;gap:24px;padding:0 28px;background:#ffffffeb;-webkit-backdrop-filter:saturate(180%) blur(10px);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:8px;color:var(--primary-deep)}.brand img{height:30px;width:auto;display:block}.brand-name{font-size:15px;font-weight:700;color:var(--text);letter-spacing:-.2px}.top-tabs{display:flex;gap:8px}.top-tab{padding:6px 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s;display:inline-flex;align-items:center;gap:6px}.top-tab:hover{color:var(--primary);border-color:var(--primary)}.top-tab.primary{background:var(--primary);border-color:var(--primary);color:#fff}.top-tab.primary:hover{background:var(--primary-hover);color:#fff;border-color:var(--primary-hover)}.top-tab .ico{width:14px;height:14px;display:inline-block}.header-spacer{flex:1}.system-status{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--mute);white-space:nowrap}.system-status .sep{color:#c3cfc7}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--primary);display:inline-block}.gpu-bar{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4);margin-bottom:14px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);font-size:13px;color:var(--ink-2)}.gpu-bar.is-offline{background:#fafbfa}.gpu-bar-head{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.gpu-bar-head b{font-weight:700;color:var(--ink)}.gpu-bar.is-offline .status-dot{background:#b3c0b7}.gpu-bar.is-offline .gpu-bar-head b{color:var(--mute)}.gpu-bar-tag{padding:1px 8px;border-radius:var(--radius-full);background:var(--primary-soft);color:var(--primary);border:1px solid var(--primary-line);font-size:12px;font-variant-numeric:tabular-nums}.gpu-bar-mute{color:var(--mute);font-size:12px}.gpu-bar-body{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.gpu-bar-name{font-weight:700;color:var(--ink)}.gpu-bar-mem{font-variant-numeric:tabular-nums}.gpu-bar-track{display:inline-block;width:120px;height:6px;border-radius:var(--radius-full);background:var(--primary-softer);border:1px solid var(--primary-line);overflow:hidden}.gpu-bar-track i{display:block;height:100%;background:var(--primary)}.gpu-bar-util{padding:1px 8px;border-radius:var(--radius-full);background:var(--primary-soft);color:var(--primary);font-size:12px;font-variant-numeric:tabular-nums}.gpu-bar-foot{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:var(--space-2);font-size:12px;color:var(--mute)}.gpu-bar-foot b{color:var(--ink-2);font-variant-numeric:tabular-nums}.gpu-bar-task{color:var(--ink-2)}.gpu-bar-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2);width:100%}.gpu-bar-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;padding:var(--space-2) 0;border-top:1px solid var(--line)}.gpu-bar-row:first-child{border-top:none;padding-top:0}.gpu-bar-row:last-child{padding-bottom:0}.gpu-bar-row-head{display:flex;align-items:center;gap:var(--space-2);flex-basis:100%}.status-dot.is-off{background:#b3c0b7}.gpu-bar--panel{margin-bottom:0;padding:var(--space-2) 0 0;border:none;border-radius:0;box-shadow:none;background:transparent;font-size:12px;gap:var(--space-1)}.gpu-bar--panel .gpu-bar-head b{font-size:12.5px}.gpu-bar--panel .gpu-bar-body{font-size:12px}.gpu-bar--panel .gpu-bar-track{width:100%}.gpu-bar--panel .gpu-bar-foot{gap:var(--space-3)}.avatar-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);overflow:hidden;cursor:pointer;background:var(--brand-soft);color:var(--brand);font-weight:700;font-size:13px;display:grid;place-items:center;padding:0}.avatar-btn img{width:100%;height:100%;object-fit:cover;display:block}.avatar-btn:hover{border-color:var(--brand)}.page{flex:1;width:100%;margin:0 auto;padding:26px 28px 64px}.page-narrow{max-width:1060px}.page-head{margin-bottom:20px;display:flex;align-items:end;gap:18px;flex-wrap:wrap}.page-title{margin:0;font-size:26px;font-weight:800;letter-spacing:-.02em;color:var(--text)}.page-sub{margin:0;color:var(--text-2);font-size:13.5px}.page-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.toolbar{display:flex;align-items:center;gap:12px;margin-bottom:18px}.toolbar-search{flex:1;max-width:720px;position:relative}.toolbar-search .input{padding-left:38px;height:38px;border-radius:999px;background:var(--surface)}.toolbar-search:before{content:"";position:absolute;left:14px;top:50%;transform:translateY(-50%);width:16px;height:16px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239aaaa0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;opacity:.85}.toolbar-actions{margin-left:auto;display:flex;gap:8px}.home-head{display:grid;grid-template-columns:auto minmax(280px,1fr) auto;align-items:center;gap:24px;margin-bottom:22px}.home-title h1{margin:0;font-size:26px;font-weight:800;color:var(--ink);letter-spacing:-.02em}.home-title p{margin:5px 0 0;font-size:13px;color:#93a59a}.home-search{position:relative;justify-self:center;width:100%;max-width:640px}.home-search .input{width:100%;height:44px;padding-left:42px;padding-right:18px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:13.5px;color:var(--ink)}.home-search .input::placeholder{color:#9aaaa0}.home-search .input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #106b3e14}.home-search>svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:#9aaaa0;pointer-events:none}.home-actions{display:flex;gap:12px;justify-self:end}.home-actions .btn{height:44px;padding:0 20px;font-size:14px;border-radius:var(--radius);display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.home-actions .btn svg{width:16px;height:16px}.btn-outline{background:var(--surface);border:1px solid #dfe7e1;color:var(--brand)}.btn-outline:hover:not(:disabled){border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}.btn-brand{background:var(--brand);border:1px solid var(--brand);color:#fff}.btn-brand:hover:not(:disabled){background:var(--brand-hover);border-color:var(--brand-hover);color:#fff}@media (max-width: 960px){.home-head{grid-template-columns:1fr;gap:12px}.home-search{justify-self:stretch;max-width:none}.home-actions{justify-self:start}}.gallery-layout{display:grid;grid-template-columns:250px 1fr;gap:18px;align-items:start}@media (max-width: 960px){.gallery-layout{grid-template-columns:1fr}}.sidebar{background:var(--surface);border:1px solid var(--line-soft);border-radius:16px;padding:22px 16px;position:sticky;top:calc(var(--header-h) + 16px)}.sidebar-group{margin-bottom:0}.sidebar-group+.sidebar-group{margin-top:16px}.sidebar-label{font-size:13px;font-weight:500;color:var(--mute);margin-bottom:10px;padding:0 6px}.sidebar-divider{height:1px;background:var(--line-soft);margin:16px 6px}.sidebar-list{display:flex;flex-direction:column;gap:6px}.sidebar-item{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-radius:8px;font-size:13.5px;color:var(--ink-2);cursor:pointer;border:1px solid transparent;background:transparent;width:100%;text-align:left;transition:background .15s,color .15s,border-color .15s}.sidebar-item:hover{background:var(--brand-soft);color:var(--brand)}.sidebar-item.active{background:var(--brand-soft);border-color:var(--line);color:var(--brand);font-weight:600}.sidebar-item .count{font-size:11.5px;color:var(--muted)}.sidebar-item.active .count{color:var(--brand)}.main-panel{background:var(--surface);border:1px solid var(--line-soft);border-radius:16px;padding:18px}.gallery-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;font-size:13px;color:var(--text-2)}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}@media (max-width: 1180px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 820px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 540px){.grid{grid-template-columns:1fr}}.model-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid #e8ede8;border-radius:14px;overflow:hidden;padding:10px;transition:transform .18s,box-shadow .18s,border-color .18s}.model-card:hover{border-color:#d5e2d8;box-shadow:var(--shadow-sm)}.model-thumb{position:relative;aspect-ratio:4 / 5;background:#fff;border:1px solid var(--line-soft);border-radius:10px;overflow:hidden;cursor:pointer;padding:10px}.model-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s}.model-card:hover .model-thumb img{transform:scale(1.03)}.thumb-fallback{width:100%;height:100%;display:grid;place-items:center;color:var(--muted);font-size:12px}.thumb-edit{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:999px;background:var(--surface);border:0;box-shadow:var(--shadow-sm);color:var(--text-2);cursor:pointer;display:grid;place-items:center;font-size:12px;transition:background .15s,color .15s}.thumb-edit:hover{color:var(--primary);background:var(--primary-soft)}.model-head{display:flex;align-items:center;gap:8px;padding:9px 2px 8px}.model-title{margin:0;font-size:14px;font-weight:700;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-tags,.detail-tags{display:flex;flex-wrap:wrap;gap:6px}.model-tags{padding:0 2px 8px}.detail-tags{margin:8px 0 2px}.model-tags .tag,.detail-tags .tag{background:var(--primary-soft);color:var(--primary-deep);height:20px;font-size:11px;padding:0 8px}.head-edit{margin-left:auto;flex-shrink:0;display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:12px;font-family:inherit;cursor:pointer;color:#7a8a80;text-decoration:none;transition:color .15s,border-color .15s,background .15s}.head-edit svg{width:12px;height:12px}.head-edit:hover{color:var(--brand);border-color:var(--brand);background:var(--brand-soft)}.model-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:0 2px 2px}.model-act{height:30px;border:1px solid #e8ede8;border-radius:8px;background:var(--surface);color:#5a6a60;font-size:12.5px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:4px;transition:all .15s}.model-act:hover{color:var(--brand);border-color:var(--brand);background:var(--brand-soft)}.model-act.danger:hover{color:var(--danger);border-color:var(--danger-line);background:var(--danger-soft)}.model-stats{display:flex;align-items:center;gap:12px;padding:0 2px 8px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.model-stat{display:inline-flex;align-items:center;gap:4px;color:var(--muted)}.model-stat svg{width:13px;height:13px}button.model-stat{background:none;border:0;padding:0;font-family:inherit;font-size:inherit;cursor:pointer;transition:color .15s}button.model-stat:hover{color:var(--text-2)}.model-fav.active,.model-fav-btn.active{color:var(--danger)}.model-fav-btn.active{border-color:var(--danger-line);background:var(--danger-soft)}.pager-row{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:20px;font-size:13px;color:var(--mute)}.pager{display:flex;gap:6px}.pager button{min-width:32px;height:32px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:#5a6a60;font-size:12.5px;cursor:pointer;transition:all .15s}.pager button:hover:not(:disabled):not(.active){color:var(--brand);border-color:var(--brand)}.pager button:disabled{opacity:.45;cursor:not-allowed}.pager button.active{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}.hero{position:relative;overflow:hidden;border-radius:var(--radius-lg);padding:44px 40px;margin-bottom:28px;background:radial-gradient(900px 360px at 90% 10%,rgba(255,255,255,.18),transparent 60%),linear-gradient(135deg,#10b981,#0a8754);color:#fff}.hero h1{position:relative;margin:0 0 10px;font-size:30px;font-weight:700;letter-spacing:-.5px}.hero p{position:relative;margin:0 0 22px;max-width:640px;color:#ffffffd9;font-size:14px;line-height:1.7}.hero-stats{position:relative;display:flex;gap:28px;margin-top:22px}.hero-stat b{display:block;font-size:22px;font-weight:700}.hero-stat span{font-size:11.5px;color:#ffffffc7}.hero-cta{display:inline-flex;gap:10px}.hero-cta .btn{background:#fff;color:var(--primary-deep);border-color:#fff}.hero-cta .btn:hover{background:var(--primary-softer);border-color:#fff}.hero-cta .btn-ghost{background:#ffffff2e;border-color:#fff6;color:#fff}.hero-cta .btn-ghost:hover{background:#ffffff47;color:#fff;border-color:#ffffffb3}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:18px;align-items:stretch;min-height:calc(100vh - 170px)}@media (max-width: 1100px){.detail-layout{grid-template-columns:1fr;min-height:0}}.breadcrumb{margin-bottom:14px;font-size:13px;color:var(--text-2)}.breadcrumb a{color:var(--primary)}.breadcrumb .sep{margin:0 6px;color:var(--muted)}.breadcrumb .current{color:var(--text);font-weight:500}.back-link{display:inline-flex;align-items:center;gap:4px;color:var(--primary)}.viewer-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);position:relative}.viewer-stage{position:relative;width:100%;aspect-ratio:4 / 3;min-height:300px;background:#fff}.viewer-stage iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;display:block}.viewer-tip{position:absolute;left:50%;transform:translate(-50%);bottom:14px;padding:5px 14px;border-radius:999px;background:var(--primary-soft);color:var(--primary-deep);font-size:12px;border:1px solid var(--primary-line);display:inline-flex;align-items:center;gap:4px;white-space:nowrap;max-width:calc(100vw - 24px);overflow:hidden;text-overflow:ellipsis}.viewer-meta{position:absolute;right:14px;bottom:14px;padding:5px 14px;border-radius:999px;background:#ffffffdb;color:var(--text-2);font-size:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.viewer-bar{display:flex;align-items:center;gap:8px;padding:9px 14px;border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap}.viewer-bar .spacer{flex:1}.viewer-bar .hint{color:var(--text-2);font-size:12px}.kv{display:flex;justify-content:space-between;align-items:center;padding:7px 0;font-size:13px;border-bottom:1px dashed var(--border)}.kv:last-child{border-bottom:0}.kv span:first-child{color:var(--text-2)}.kv span:last-child{font-weight:500;color:var(--text)}.kv-actions{display:flex;flex-direction:column;gap:8px}.kv-actions .btn{width:100%}.btn-full-preview{background:var(--primary-deep);border-color:var(--primary-deep);color:#fff;font-weight:600}.btn-full-preview:hover:not(:disabled){background:#065f46;color:#fff;border-color:#065f46}.btn-download{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.btn-download:hover:not(:disabled){background:#0d5a34;color:#fff;border-color:#0d5a34}.btn-download.locked,.btn-download.locked:hover{background:var(--border);border-color:var(--border);color:var(--muted)}.btn-download svg{width:15px;height:15px}.download-modal .resource-group{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.download-modal .resource-group+.resource-group{margin-top:12px}.download-modal .resource-group-title{padding:0}.detail-stats{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;margin:12px 0 0;padding-bottom:12px;border-bottom:1px solid var(--border)}.detail-stat{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:12px}.detail-stat svg{width:14px;height:14px}.detail-stat b{font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.detail-stat span{font-size:12px;color:var(--muted)}.detail-stat.fav svg{color:var(--danger)}.detail-stat.fav b{color:var(--danger)}.detail-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.btn-fav-active{color:var(--danger);border-color:var(--danger-line);background:var(--danger-soft)}.btn-fav-active:hover:not(:disabled){color:var(--danger);border-color:var(--danger);background:var(--danger-soft)}.attr-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}.attr-grid.three{grid-template-columns:repeat(3,1fr)}.attr-item{display:flex;flex-direction:column;gap:2px;min-width:0}.attr-label{font-size:11.5px;color:var(--muted)}.attr-value{font-size:13.5px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kv-list{margin-top:12px}.detail-info-card{display:flex;flex-direction:column;padding:18px;min-height:0}.detail-info-card .kv-actions{margin-top:auto;padding-top:4px}.detail-cover{width:100%;aspect-ratio:16 / 9;border-radius:12px;overflow:hidden;background:#fff;border:1px solid var(--line-soft);margin-bottom:14px;flex:none}.detail-cover img{width:100%;height:100%;object-fit:contain;display:block}.info-section{margin-top:16px}.info-section-title{margin:0 0 10px;font-size:12.5px;font-weight:700;color:var(--text-2)}.detail-viewer{display:flex;flex-direction:column;min-width:0;min-height:420px}.detail-viewer .viewer-wrap,.detail-viewer .viewer-card{flex:1;display:flex;flex-direction:column;min-height:0}.detail-viewer .viewer-stage{flex:1;aspect-ratio:auto;min-height:0}.resource-section{margin-top:22px}.resource-head{display:flex;align-items:center;gap:10px;padding:0 4px;margin-bottom:12px}.resource-head h3{margin:0;font-size:14px;font-weight:600;color:var(--text);display:inline-flex;align-items:center;gap:7px}.resource-head .count{color:var(--muted);font-size:12.5px}.resource-group{margin-top:16px}.resource-group:first-of-type{margin-top:0}.resource-group-title{margin:0 0 8px;padding:0 4px;font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--text-2)}.resource-list{display:flex;flex-direction:column;gap:10px}.resource-row{display:flex;align-items:center;gap:14px;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.resource-row:hover{border-color:var(--primary-line)}.resource-fmt{flex:none;min-width:52px;height:34px;display:grid;place-items:center;padding:0 10px;border-radius:8px;font-size:12px;font-weight:700;letter-spacing:.03em;background:var(--primary-soft);color:var(--primary-deep)}.resource-fmt.fmt-html{background:#fff7e6;color:#b45309}.resource-fmt.fmt-zip{background:#f1f5f9;color:#475569}.resource-row-info{flex:1;min-width:0;display:flex;flex-direction:column}.resource-row-info b{font-size:13.5px;font-weight:600;color:var(--text)}.resource-row-info span{font-size:12px;color:var(--muted)}.resource-fmt.fmt-sog{background:var(--primary-soft);color:var(--primary-deep)}.resource-fmt.fmt-ply{background:#eef2ff;color:#4f46e5}.resource-row.is-disabled{opacity:.72;background:var(--surface-muted)}.resource-row.is-disabled .btn{opacity:.7;cursor:not-allowed}.resource-cover{flex:none;width:56px;height:42px;border-radius:6px;border:1px solid var(--border);overflow:hidden;display:block}.resource-cover img{width:100%;height:100%;object-fit:cover;display:block}.member-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;margin-bottom:16px}.member-card{padding:20px}.member-card .field{margin-top:12px}.member-tip{margin-top:16px;display:flex;align-items:flex-start;gap:8px;font-size:12.5px;line-height:1.6;color:var(--text-2);background:var(--primary-soft);border:1px solid var(--primary-line);border-radius:var(--radius-sm);padding:10px 12px}.member-tip svg{flex:none;margin-top:2px;color:var(--primary)}.member-favs{padding:20px}.member-fav-list{margin-top:12px;display:flex;flex-direction:column;gap:10px}.member-fav-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-md)}.member-fav-main{display:flex;flex-direction:column;gap:3px;min-width:0}.member-fav-main b{font-size:14px;font-weight:600;color:var(--text)}.member-fav-main span{font-size:12px;color:var(--muted)}.member-fav-actions{display:flex;gap:8px;flex:none}.vip-lock{margin-top:16px;border:1px dashed var(--primary-line);background:var(--primary-softer);border-radius:var(--radius-md);padding:26px 20px;text-align:center}.vip-lock-icon{width:48px;height:48px;margin:0 auto 10px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);border-radius:50%}.vip-lock-title{font-size:16px;font-weight:700;color:var(--text)}.vip-lock-desc{margin:8px auto 16px;max-width:420px;font-size:13px;line-height:1.7;color:var(--text-2)}.vip-lock-actions{display:flex;justify-content:center;gap:10px}.table-wrap{padding:4px}.table-wrap .table{margin:0}.progress{height:4px;background:var(--bg-soft);border-radius:2px;overflow:hidden;position:relative}.progress-bar{height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-deep));border-radius:2px;transition:width .4s}.progress-bar.failed{background:linear-gradient(90deg,var(--danger),#ef4444)}.center-state{padding:60px 20px;text-align:center;color:var(--muted)}.spinner{width:24px;height:24px;border:2.5px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite;margin:0 auto 10px}@keyframes spin{to{transform:rotate(360deg)}}.error-box{padding:14px 16px;border-radius:var(--radius);background:var(--danger-soft);color:var(--danger);font-size:13px;border:1px solid var(--danger-line)}.toast-wrap{position:fixed;top:18px;left:50%;transform:translate(-50%);z-index:999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{padding:9px 18px;border-radius:8px;background:var(--text);color:#fff;font-size:13px;box-shadow:var(--shadow-lg);animation:toast-in .22s ease}.toast.error{background:var(--danger)}.toast.success{background:var(--primary)}@keyframes toast-in{0%{opacity:0;transform:translateY(-10px)}}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:700;padding:20px}.modal{width:100%;max-width:460px;background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden;display:flex;flex-direction:column;max-height:90vh}.modal-sm{max-width:380px}.modal-md{max-width:480px}.modal-lg{max-width:720px}.modal-head{display:flex;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border)}.modal-title{flex:1;font-weight:600;font-size:14.5px}.modal-close{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;width:32px;height:32px;cursor:pointer;color:var(--muted);border-radius:6px}.modal-close:hover{color:var(--text);background:var(--bg-soft)}.modal-body{padding:18px;overflow-y:auto}.modal-foot{padding:12px 18px 16px;display:flex;gap:10px;justify-content:flex-end;border-top:1px solid var(--border)}.artifact-list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.artifact-head{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--surface-2);border-bottom:1px solid var(--border)}.artifact-head-label{flex:1;font-size:12px;font-weight:600;color:var(--text-2)}.artifact-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--border)}.artifact-row:last-child{border-bottom:0}.artifact-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--border-strong)}.artifact-dot.exists{background:var(--success)}.artifact-dot.missing{background:var(--danger)}.artifact-dot.none{background:var(--border-strong)}.artifact-dot.unknown{background:var(--warn)}.artifact-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.artifact-main b{font-size:13px;font-weight:600;color:var(--text)}.artifact-main span{font-size:11.5px;color:var(--muted)}.artifact-state{flex:none;font-size:11.5px;font-weight:600;color:var(--muted)}.artifact-state.exists{color:#047857}.artifact-state.missing{color:var(--danger)}.artifact-state.none{color:var(--muted)}.artifact-state.unknown{color:var(--warn)}.artifact-dl{flex:none;display:inline-flex;gap:4px;padding:3px;background:var(--bg-soft);border-radius:var(--radius-md)}.artifact-dl .btn{min-height:26px;height:26px;padding:0 10px;font-size:12px;text-decoration:none}.panel-block .artifact-list{border:0;border-radius:0}.panel-block .artifact-head{background:transparent;padding:0 0 8px}.panel-block .artifact-row{padding-left:0;padding-right:0}.final-output{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.final-output-row{display:flex;flex-direction:column;gap:6px}.final-output-row b{font-size:11.5px;font-weight:600;color:var(--muted);text-align:center}.final-output-row .btn{width:100%}.row-clickable{cursor:pointer}.row-clickable:hover td{background:var(--primary-softer)}.row-clickable:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--primary)}.modeling-quality{margin-top:4px;font-size:11.5px;color:var(--muted)}.table-manage{table-layout:fixed}.table.table-manage th{font-size:15px;font-weight:700;color:var(--text);padding:12px 14px}.table-manage th:nth-child(1),.table-manage td:nth-child(1){width:8%}.table-manage th:nth-child(2),.table-manage td:nth-child(2){width:29%}.table-manage th:nth-child(3),.table-manage td:nth-child(3){width:34%;text-align:center}.table-manage th:nth-child(4),.table-manage td:nth-child(4){width:29%}.table-manage th:nth-child(4){text-align:right}.table-manage td:nth-child(4) .cell-actions{justify-content:flex-end}.panel-hint{font-size:12px;color:var(--muted);margin:0}.panel-field{display:flex;flex-direction:column;gap:6px}.panel-field-label{font-size:12px;font-weight:600;color:var(--text-2)}.panel-field .field-hint{margin-top:0}.panel-block{display:flex;flex-direction:column;gap:10px;border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.panel-block-head{display:flex;align-items:center;gap:10px}.panel-block-title{flex:1;font-size:12px;font-weight:600;color:var(--text-2)}.q-sub{color:var(--muted);font-weight:500;font-size:11.5px}.seg-tab.active .q-sub{color:var(--primary)}.panel-block .seg-tabs{display:flex}.panel-block .seg-tab{flex:1 1 0;min-width:0;padding:0 8px}.panel-cta{flex:1 1 100%;flex-direction:column;gap:2px;min-height:52px;font-weight:700;box-shadow:0 4px 0 var(--primary-deep);transition:background .15s,border-color .15s,transform .08s,box-shadow .08s}.panel-cta-label{font-size:14.5px;font-weight:800;letter-spacing:.2px}.panel-cta-sub{font-size:12px;font-weight:600;opacity:.88;font-variant-numeric:tabular-nums}.panel-cta:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover);box-shadow:0 4px 0 var(--primary-deep)}.panel-cta:active:not(:disabled){transform:translateY(4px);box-shadow:0 0 0 var(--primary-deep)}.panel-cta:focus-visible{box-shadow:var(--focus-ring),0 4px 0 var(--primary-deep)}.panel-cta:disabled{box-shadow:none}.modeling-stack{display:flex;flex-direction:column;gap:14px}.card.form-card.submit-full{display:flex;flex-direction:column;gap:18px}.card.form-card.submit-full>*{margin-top:0;margin-bottom:0}.modeling-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}@media (max-width: 720px){.modeling-row{grid-template-columns:1fr}}.admin-shell{display:flex;min-height:100vh;background:var(--bg)}.admin-side{width:var(--sidebar-w);flex:none;background:#0f172a;color:#cbd5e1;display:flex;flex-direction:column;padding:18px 12px;position:sticky;top:0;height:100vh}.admin-brand{display:flex;align-items:center;gap:9px;padding:0 8px 18px;color:#fff;font-weight:700;font-size:14.5px}.admin-brand img{height:26px}.admin-nav{display:flex;flex-direction:column;gap:3px}.admin-nav a{display:flex;align-items:center;gap:9px;padding:8px 11px;border-radius:6px;font-size:13.5px;color:#94a3b8;transition:background .15s,color .15s}.admin-nav a:hover{background:#94a3b81f;color:#e2e8f0}.admin-nav a.active{background:var(--primary);color:#fff}.admin-side-foot{margin-top:auto;padding:12px 8px 0;border-top:1px solid #1e293b;font-size:12px;color:#64748b}.admin-main{flex:1;min-width:0;display:flex;flex-direction:column}.admin-top{height:56px;display:flex;align-items:center;gap:14px;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.admin-top .spacer{flex:1}.admin-content{padding:22px 24px 60px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:20px}.stat-card{padding:16px 18px}.stat-label{font-size:12.5px;color:var(--muted);margin-bottom:6px}.stat-value{font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1.2;font-variant-numeric:tabular-nums}.stat-foot{margin-top:6px;font-size:12px;color:var(--muted)}.panel-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px}@media (max-width: 1080px){.panel-grid{grid-template-columns:1fr}}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}.panel-head h3{margin:0;font-size:14px;font-weight:600}.panel-body{padding:16px}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;padding:10px 14px;background:var(--surface-2);border-bottom:1px solid var(--border);font-size:12px;font-weight:600;color:var(--text-2);white-space:nowrap;position:sticky;top:0;z-index:1}.table td{padding:11px 14px;border-bottom:1px solid var(--border);vertical-align:middle;font-variant-numeric:tabular-nums}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:var(--surface-2)}.thumb-mini{width:52px;height:36px;border-radius:6px;object-fit:cover;background:var(--bg-soft);display:block}.cell-actions{display:flex;gap:6px;justify-content:flex-start;align-items:center;flex-wrap:wrap}.table .btn-sm{min-height:28px}.row-go{width:30px;padding:0;color:var(--text-2)}.row-go:hover:not(:disabled){color:var(--primary);background:var(--primary-soft);box-shadow:none}.panel-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.panel-actions .panel-actions-end{margin-left:auto;display:flex;gap:8px}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--radius);padding:28px 18px;text-align:center;background:var(--surface-2);cursor:pointer;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.over{border-color:var(--primary);background:var(--primary-soft)}.dropzone b{display:block;font-size:13.5px;margin-bottom:4px;color:var(--text)}.dropzone span{font-size:12px;color:var(--muted)}.cover-preview{margin-top:10px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border);background:var(--surface-2)}.cover-preview img{width:100%;display:block;max-height:210px;object-fit:cover}.file-pill{display:flex;align-items:center;gap:10px;margin-top:10px;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);font-size:12.5px}.file-pill .name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.oss-badge{flex:none;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.oss-badge.ok{color:#047857;background:#10b9811f}.oss-badge.bad{color:#b45309;background:#f59e0b24}.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}@media (max-width: 1100px){.editor-layout{grid-template-columns:1fr}}.sticky-side{position:sticky;top:78px}.algo-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.algo-card{display:flex;gap:10px;padding:12px 14px;border:1.5px solid var(--border-strong);border-radius:var(--radius);cursor:pointer;transition:all .15s;background:var(--surface)}.algo-card.active{border-color:var(--primary);background:var(--primary-softer)}.algo-radio{width:16px;height:16px;border-radius:50%;border:2px solid var(--border-strong);flex:none;margin-top:2px;position:relative}.algo-card.active .algo-radio{border-color:var(--primary)}.algo-card.active .algo-radio:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:50%;background:var(--primary)}.algo-card b{display:block;font-size:13px;margin-bottom:2px;color:var(--text)}.algo-card span{font-size:11.5px;color:var(--muted);line-height:1.5}.quality-card{padding:14px 16px;border:1.5px solid var(--border-strong);border-radius:var(--radius);text-align:center;cursor:pointer;transition:all .15s;background:var(--surface)}.quality-card.active{border-color:var(--primary);background:var(--primary-softer)}.quality-card b{display:block;font-size:14px;margin-bottom:2px;color:var(--text)}.quality-card span{font-size:11.5px;color:var(--muted)}.project-list{display:flex;flex-direction:column;gap:10px}.project-row{display:flex;flex-direction:column;gap:8px;padding:14px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s,box-shadow .15s}.project-row:hover{border-color:var(--primary-line);box-shadow:var(--shadow-sm)}.project-row-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.project-row-spacer{flex:1}.project-name{font-weight:700;color:var(--text);font-size:14px}.project-name .meta{color:var(--muted);font-size:11.5px;font-weight:400;margin-left:6px}.project-status{font-size:12px;color:var(--muted)}.project-status.error{color:var(--danger)}.progress.slim{height:5px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(1200px 600px at 50% -10%,rgba(16,185,129,.25),transparent 60%),linear-gradient(160deg,#064e3b,#022c22 80%)}.login-card{width:100%;max-width:380px;padding:34px 32px 30px;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.login-card h2{margin:0 0 4px;font-size:20px;font-weight:700}.login-card p{margin:0 0 22px;font-size:13px;color:var(--muted)}.footer{padding:22px 24px;border-top:1px solid var(--border);color:var(--muted);font-size:12.5px;text-align:center;background:var(--surface)}.tag-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.tag-item{display:inline-flex;align-items:center;gap:5px;padding:3px 6px 3px 10px;border-radius:4px;background:var(--primary-soft);color:var(--primary-deep);font-size:12px;font-weight:500}.tag-item button{display:inline-flex;align-items:center;border:0;background:transparent;color:inherit;cursor:pointer;line-height:1;padding:0 2px;opacity:.7}.tag-item button:hover{opacity:1}.desc-block{font-size:13.5px;color:var(--text-2);white-space:pre-wrap;line-height:1.75;margin-top:8px}.share-grid{display:grid;grid-template-columns:1fr 120px;gap:14px;align-items:start}.share-img{aspect-ratio:1 / 1;border-radius:var(--radius);overflow:hidden;background:var(--bg-soft)}.share-img img{width:100%;height:100%;object-fit:cover;display:block}.share-info h4{margin:0 0 4px;font-size:16px;font-weight:700}.share-info p{margin:0 0 8px;font-size:12.5px;color:var(--text-2)}.qr-placeholder{width:120px;height:120px;background:linear-gradient(45deg,var(--text) 25%,transparent 25%) 0 0/8px 8px,linear-gradient(-45deg,var(--text) 25%,transparent 25%) 0 0/8px 8px,linear-gradient(45deg,transparent 75%,var(--text) 75%) 4px 4px/8px 8px,linear-gradient(-45deg,transparent 75%,var(--text) 75%) 4px 4px/8px 8px,#fff;border:1px solid var(--border);border-radius:4px}.share-foot{margin-top:14px;text-align:center;color:var(--muted);font-size:12px}.code-block{background:#1e293b;color:#e2e8f0;padding:12px 14px;border-radius:var(--radius-sm);font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:11.5px;line-height:1.6;overflow-x:auto;white-space:pre-wrap;word-break:break-all}.code-row{margin-bottom:14px}.code-row-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.code-row-head b{font-size:13px;color:var(--text)}.code-row-head span{color:var(--muted);font-size:11.5px}.preview-big{aspect-ratio:1 / 1;width:100%;border-radius:var(--radius);overflow:hidden;background:var(--bg-soft);margin-bottom:14px}@media (max-width: 960px){.gallery-layout{grid-template-columns:1fr!important}.filter-side{position:sticky;top:64px;z-index:5;max-height:none;border-radius:var(--radius)}.detail-layout{grid-template-columns:1fr!important}.detail-info-toggle{display:inline-flex}.detail-info-card.info-collapsed .info-section,.detail-info-card.info-collapsed .kv-actions{display:none}.detail-viewer{min-height:0}.detail-viewer .viewer-wrap{min-height:52vh}.admin-shell{grid-template-columns:64px 1fr!important}.admin-side .admin-brand .brand-text,.admin-side .nav-label,.admin-side .admin-side-foot .nav-text{display:none!important}.admin-side .admin-nav a{justify-content:center!important;padding:10px!important}.stat-grid{grid-template-columns:repeat(2,1fr)!important}.panel-grid{grid-template-columns:1fr!important}.page{padding:20px 18px!important}}@media (max-width: 720px){.site-header{gap:8px!important;padding:8px 12px!important;flex-wrap:wrap;height:auto!important;min-height:56px}.site-header .brand img{height:28px!important}.site-header .top-tabs{order:3;width:100%;justify-content:space-between;gap:6px!important}.site-header .top-tab{padding:6px 10px!important;font-size:12.5px!important}.site-header .top-tab.primary{flex:1;background:var(--primary)!important;color:#fff!important;border-color:var(--primary)!important}.site-header .system-status,.site-header .header-spacer{display:none!important}.site-header .avatar-btn{order:2}.hero{padding:28px 22px!important;border-radius:var(--radius)!important}.hero h1{font-size:24px!important}.hero-stats{gap:18px!important;flex-wrap:wrap}.hero-stat b{font-size:22px!important}.hero-stat span{font-size:11px!important}.grid{grid-template-columns:1fr 1fr!important;gap:12px!important}.login-wrap{padding:16px!important}.login-card{width:100%!important;max-width:360px;padding:22px!important}.page{padding:16px 12px!important}.page-title{font-size:20px!important}.stat-grid{grid-template-columns:1fr 1fr!important;gap:10px!important}.stat-card{padding:14px!important}.stat-value{font-size:22px!important}.viewer-bar .hint{display:none}.viewer-bar{padding:8px 10px}.viewer-bar .btn-sm{font-size:11.5px;padding:4px 8px}.modal-mask{padding:14px}.modal{width:94vw!important;max-width:none!important;margin:auto}.modal-body{padding:16px!important;overflow-x:hidden;min-width:0}.modal-foot{padding:12px 16px!important}.attr-grid.three{grid-template-columns:1fr 1fr!important}.poster-detail .attr-value{white-space:normal;word-break:break-word}}@media (max-width: 480px){.grid{grid-template-columns:1fr!important}.hero-stats{display:grid!important;grid-template-columns:1fr 1fr;gap:12px 18px}}.preview-big img{width:100%;height:100%;object-fit:contain;display:block}.viewer-wrap{position:relative}.viewer-file-meta{position:absolute;right:14px;bottom:12px;font-size:12px;color:var(--muted);background:#ffffffd9;padding:3px 10px;border-radius:999px;pointer-events:none;z-index:3}.viewer-loading{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:2;background:#fff}.viewer-poster{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;filter:blur(3px);opacity:.9}.particle-loader{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.viewer-loading-note{position:absolute;left:50%;transform:translate(-50%);bottom:54px;padding:6px 14px;border-radius:999px;background:#ffffffeb;border:1px solid var(--line);color:var(--muted);font-size:12px;line-height:1.5;text-align:center;max-width:min(88%,400px);pointer-events:auto;display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;z-index:1}.viewer-error{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px 18px;text-align:center;background:#fff}.viewer-error b{font-size:14.5px;color:var(--text)}.viewer-error-msg{margin:0;font-size:12.5px;line-height:1.6;color:var(--text-2);max-width:46ch;word-break:break-word}.viewer-error-hint{margin:0;font-size:12px;line-height:1.6;color:var(--muted);max-width:42ch}.viewer-error-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin-top:6px}.detail-info-toggle{display:none;align-items:center;justify-content:space-between;gap:6px;width:100%;padding:8px 12px;margin-bottom:6px;border:1px solid var(--border);border-radius:9px;background:#106b3e0f;color:var(--primary);font-size:13px;font-weight:600;cursor:pointer;min-height:40px}.detail-info-toggle:hover{background:var(--brand-soft)}.detail-info-toggle .chev{transition:transform .18s ease;font-size:12px}.detail-info-toggle .chev.up{transform:rotate(180deg)}.field-label{font-size:11.5px;color:var(--muted)}.detail-title{font-size:20px;font-weight:700;color:var(--text);margin:4px 0 10px}.btn-outline-danger{background:var(--surface);border:1px solid #f3c2c2;color:var(--danger)}.btn-outline-danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.export-pending{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#f4f7f5}.export-loading-text{font-size:13px;letter-spacing:3px;color:#9ca3af}.export-badge{position:absolute;left:14px;bottom:14px;display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#b45309;background:#fdf3e3;border:1px solid #f5ddb0;border-radius:999px;padding:5px 12px}.export-badge .dot{width:7px;height:7px;border-radius:50%;background:#d97706}.share-poster{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff}.share-poster .share-img{aspect-ratio:4 / 3;background:#fff}.share-poster .share-img img{object-fit:contain}.share-poster-body{display:flex;align-items:center;gap:14px;padding:14px 16px}.share-poster-info{flex:1;min-width:0}.share-poster-title{font-size:17px;font-weight:700;color:var(--text)}.share-poster-sub{font-size:12.5px;color:var(--primary-deep);margin:4px 0 8px}.share-poster-tip{font-size:12px;color:var(--muted);line-height:1.6}.share-qr{width:108px;height:108px;flex-shrink:0}.submit-head{display:flex;align-items:center;justify-content:space-between;max-width:1060px;margin:0 auto 16px}.submit-head h1{font-size:20px;font-weight:700;color:var(--text);margin:0}.submit-grid{max-width:1060px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:stretch}.submit-col{display:flex;flex-direction:column;gap:16px;min-width:0}.submit-grid .form-card{max-width:none;margin:0}.submit-grid .card-upload{flex:1;display:flex;flex-direction:column}.submit-grid .card-attrs{flex:1}.submit-grid .card-upload .dropzone{flex:1;display:flex;flex-direction:column;justify-content:center}@media (max-width: 1020px){.submit-grid{grid-template-columns:1fr}}.head-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.submit-grid .card-grow{flex:1;display:flex;flex-direction:column}.submit-grid .card-grow>.viewer-card{flex:1;display:flex;flex-direction:column}.submit-grid .card-grow .viewer-stage{flex:1;aspect-ratio:auto;min-height:320px}.submit-grid .card-grow>.textarea{flex:1;min-height:120px}.submit-grid>.submit-full{grid-column:1 / -1}.submit-tip{max-width:1060px;margin:16px auto 0;display:flex;align-items:flex-start;gap:8px;padding:12px 14px;border:1px solid var(--primary-line);border-radius:var(--radius-md);background:var(--primary-soft);color:var(--text-2);font-size:12.5px;line-height:1.7}.submit-tip svg{flex:none;width:16px;height:16px;margin-top:2px;color:var(--primary)}.submit-tip b{color:var(--primary-deep);font-weight:600}.form-card{max-width:760px;margin:0 auto 16px;padding:18px 22px 20px;border-radius:12px}.form-label{font-size:14px;font-weight:700;color:var(--text);margin-bottom:12px}.form-label.sub{margin-top:18px}.form-label .req{color:var(--danger);font-weight:700}.form-label .opt{margin-left:8px;font-size:12px;font-weight:400;color:var(--muted)}.dropzone{border:1.5px dashed #d7dfe6;border-radius:10px;background:#fafcfb;padding:26px 20px 22px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.over{border-color:var(--primary);background:var(--primary-softer)}.dropzone-icon{width:34px;height:34px;margin:0 auto 12px;color:#9aa8b2}.dropzone-icon svg{width:100%;height:100%}.dropzone-main{font-size:14px;color:var(--text-2)}.dropzone-main b{color:var(--text)}.dropzone-sub{font-size:12px;color:var(--muted);margin-top:6px}.dropzone-sub em{font-style:normal;color:var(--primary-deep);text-decoration:underline;text-underline-offset:2px}.upload-row{display:flex;align-items:center;gap:10px;margin-top:10px;padding:11px 14px;border:1px solid var(--line-soft);border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s}.upload-row:hover{border-color:var(--primary-line);background:#fafcfb}.upload-progress{margin-top:10px}.upload-progress-text{font-size:12.5px;color:var(--primary-deep);font-weight:600;margin-bottom:6px}.upload-progress-bar{height:6px;border-radius:3px;background:#e8eef0;overflow:hidden}.upload-progress-bar span{display:block;height:100%;border-radius:3px;background:var(--primary);transition:width .2s ease}.upload-ic{width:16px;height:16px;color:#9aa8b2;flex-shrink:0}.upload-ic svg{width:100%;height:100%}.upload-row b{font-size:13px;font-weight:600;color:var(--text);margin-right:8px}.upload-row i{font-style:normal;font-size:12px;color:var(--muted)}.algo-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.algo-card{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;border:1px solid var(--border);border-radius:10px;background:#fff;cursor:pointer;text-align:left;transition:border-color .15s,background .15s;min-width:0}.algo-text{min-width:0}.algo-card:hover{border-color:var(--primary-line)}.algo-card.active{border-color:var(--primary);background:#f0f7f2}.algo-card.disabled{background:#f6f8f9;cursor:not-allowed;opacity:.62}.algo-card.disabled:hover{border-color:var(--border)}.algo-card.disabled .radio,.algo-card.disabled .algo-radio{border-color:#ccd4da}.algo-tag{font-style:normal;font-size:10.5px;font-weight:500;color:#98a4ad;border:1px solid #dde3e8;border-radius:4px;padding:0 5px;line-height:16px;white-space:nowrap}.algo-card .radio{width:16px;height:16px;border-radius:50%;border:2px solid #c8d1d9;flex-shrink:0;margin-top:2px;position:relative;transition:border-color .15s}.algo-card.active .radio{border-color:var(--primary)}.algo-card.active .radio:after{content:"";position:absolute;top:2.5px;right:2.5px;bottom:2.5px;left:2.5px;border-radius:50%;background:var(--primary)}.algo-text b{display:flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;color:var(--text);margin-bottom:3px}.algo-text i{display:block;font-style:normal;font-size:12px;color:var(--muted);line-height:1.55;word-break:break-word}.quality-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.quality-card{padding:15px 10px 13px;border:1px solid var(--border);border-radius:10px;background:#fff;cursor:pointer;text-align:center;transition:border-color .15s,background .15s}.quality-card:hover{border-color:var(--primary-line)}.quality-card.active{border-color:var(--primary);background:#f0f7f2}.quality-card b{display:block;font-size:14px;font-weight:600;color:var(--text)}.quality-card i{display:block;font-style:normal;font-size:11.5px;color:var(--muted);margin-top:4px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}.field-grid.three{grid-template-columns:repeat(3,1fr)}.field-grid .full{grid-column:1 / -1}.field-grid label>span{display:block;font-size:12.5px;color:var(--text-2);margin-bottom:6px}@media (max-width: 720px){.submit-head{flex-direction:column;align-items:stretch;gap:12px}.submit-head .btn{width:100%}.form-card{padding:16px 14px 18px}.dropzone{padding:20px 14px 18px}.dropzone-icon{width:30px;height:30px;margin-bottom:10px}.dropzone-main{font-size:13px}.dropzone-size{display:block;margin-left:0;margin-top:2px}.upload-row{flex-wrap:wrap;padding:10px 12px;gap:8px 10px}.upload-row span{min-width:0}.upload-row i{word-break:break-word;line-height:1.5}.algo-grid,.field-grid,.field-grid.three,.quality-grid{grid-template-columns:1fr}.field-grid label{min-width:0}}.preview-stage{aspect-ratio:4 / 5;border-radius:8px;overflow:hidden;background:#fff;border:1px solid var(--line-soft)}.preview-stage .splat-shell{height:100%;border-radius:0;border:0}.em-section{font-size:13px;font-weight:700;color:var(--text);margin:20px 0 10px}.em-section:first-child{margin-top:0}.em-field{margin-bottom:12px}.em-field>span{display:block;font-size:12.5px;color:var(--text-2);margin-bottom:6px}.em-grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.em-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.em-thumb-head{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-2);margin-bottom:6px}.badge-has{display:inline-flex;align-items:center;gap:3px;height:18px;padding:0 7px;border-radius:999px;background:#e5f4ec;color:var(--primary-deep);font-size:10.5px;font-weight:600}.em-thumb{aspect-ratio:4 / 3;border-radius:8px;background:#f3f5f4;border:1px solid var(--line-soft);overflow:hidden;display:grid;place-items:center}.em-thumb img{width:100%;height:100%;object-fit:contain}.em-thumb .em-thumb-empty{font-size:12px;color:var(--muted)}.em-thumb-btn{width:100%;height:38px;margin-top:8px;border:0;border-radius:8px;background:#f1f3f4;color:var(--text-2);font-size:13px;cursor:pointer;transition:background .15s,color .15s}.em-thumb-btn:hover{background:var(--primary-softer);color:var(--primary-deep)}@media (max-width: 640px){.em-grid2,.em-grid3{grid-template-columns:1fr}}.psm{display:flex;flex-direction:column;gap:14px}.psm-error{color:#b91c1c;font-size:13px;margin:0 0 10px}.psm>*{margin-top:0;margin-bottom:0}.psm-offline{font-size:12px;color:#92600a;background:#fdf6e7;border:1px solid #f0dfb8;border-radius:8px;padding:8px 12px;margin:0}.psm-meta{display:flex;flex-direction:column;gap:8px;margin:0}.psm-meta-k{flex:none;font-size:11.5px;color:var(--muted)}.psm-jobid{display:flex;align-items:baseline;gap:8px;margin:0;font-size:11.5px;color:var(--muted)}.psm-jobid b{font-family:monospace;font-weight:600;color:var(--text-2);-webkit-user-select:all;user-select:all}.psm-logs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0}.psm-logs a{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;background:var(--primary-softer);border:1px solid var(--line);color:var(--primary-deep, #106b3e);text-decoration:none;font-family:monospace;font-size:11.5px;word-break:break-all}.psm-logs a:hover{background:var(--primary-soft);border-color:var(--primary)}.psm-trigger{margin:14px 0 0;padding:12px 14px;border-radius:10px;background:#eef7f0;border:1px solid #cde7d6}.stage-steps{display:flex;align-items:flex-start;gap:0;margin:0}.stage-step{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;text-align:center}.stage-step:before{content:"";position:absolute;top:11px;left:-50%;width:100%;height:2px;background:#e2e8e4;z-index:0}.stage-step:first-child:before{display:none}.stage-step.done:before,.stage-step.active:before{background:var(--primary, #106b3e)}.stage-dot{width:22px;height:22px;border-radius:50%;z-index:1;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;background:#eef2ef;color:#8a948e;border:2px solid #e2e8e4}.stage-step.done .stage-dot{background:var(--primary, #106b3e);border-color:var(--primary, #106b3e);color:#fff}.stage-step.active .stage-dot{background:#fff;border-color:var(--primary, #106b3e);color:var(--primary, #106b3e);box-shadow:0 0 0 4px #106b3e1f}.stage-step.failed .stage-dot{background:#fff;border-color:#b91c1c;color:#b91c1c;box-shadow:0 0 0 4px #b91c1c1a}.stage-label{font-size:11px;color:#8a948e;line-height:1.2}.stage-step.done .stage-label{color:var(--primary-deep, #0a4d2c)}.stage-step.active .stage-label{color:var(--primary, #106b3e);font-weight:600}.stage-step.failed .stage-label{color:#b91c1c;font-weight:600}.psm-status-line{display:flex;align-items:center;gap:10px;margin:0}.psm-status-end{margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:10px}.psm-detail{min-width:0;font-size:13px;color:var(--text-2, #5a655f)}.psm-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,220px));justify-content:start;gap:10px;margin:0}.psm-stat{background:#f6f9f7;border:1px solid #e6ede8;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.psm-stat-k{font-size:11px;color:#8a948e}.psm-stat-v{font-size:13.5px;font-weight:600;color:var(--text-1, #1d2521);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 640px){.psm-stats{grid-template-columns:repeat(2,1fr)}.stage-label{font-size:10px}}.psm-eta{font-size:12px;color:var(--primary, #106b3e);font-weight:600}.psm-live{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--primary, #106b3e)}.psm-live:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.dropzone-size{margin-left:8px;font-size:12px;font-weight:400;color:var(--text-3, #9aa5a0)}.file-line{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface)}.file-line+.file-line{margin-top:10px}.file-line-preview{width:48px;height:48px;flex:none;border-radius:8px;overflow:hidden;border:1px solid var(--border);background:var(--surface-2);display:grid;place-items:center}.file-line-preview img{width:100%;height:100%;object-fit:cover;display:block}.file-tile{width:100%;height:100%;display:grid;place-items:center;font-size:12px;font-weight:700;color:#fff;letter-spacing:.5px}.file-line-main{flex:1;min-width:0}.file-line-main b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600}.file-line-main span{display:block;margin-top:2px;font-size:11.5px;color:var(--muted)}.file-line-actions{display:flex;align-items:center;gap:6px;flex:none}.switch-row{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-2);cursor:pointer;-webkit-user-select:none;user-select:none}.switch-row input{accent-color:var(--primary, #106b3e);width:15px;height:15px;cursor:pointer}.shell{display:flex;height:100vh;overflow:hidden}.shell-side{width:var(--sidebar-w);flex:none;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:18px 12px}.shell-brand{display:flex;align-items:center;gap:9px;padding:0 8px 18px;font-weight:700;font-size:15px;color:var(--text)}.shell-brand img{height:28px;width:auto;display:block}.shell-nav{display:flex;flex-direction:column;gap:3px}.shell-nav a{display:flex;align-items:center;gap:9px;padding:0 12px;border-radius:var(--radius-md);font-size:13.5px;font-weight:500;color:var(--text-2);transition:background .15s,color .15s;min-height:40px}.shell-nav a:hover{background:var(--brand-soft);color:var(--brand)}.shell-nav a.active{background:var(--primary);color:#fff;font-weight:600}.shell-nav .shell-nav-disabled{display:flex;align-items:center;gap:9px;padding:0 12px;border-radius:var(--radius-md);font-size:13.5px;font-weight:500;color:var(--muted);min-height:40px;opacity:.55;cursor:not-allowed;-webkit-user-select:none;user-select:none}.shell-foot{position:relative;margin-top:auto;padding:12px 8px 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:10px}.shell-account{display:flex;align-items:center;gap:9px;width:100%;min-height:44px;padding:6px 8px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--text);font:inherit;font-size:13.5px;font-weight:600;text-align:left;cursor:pointer;transition:background .15s,border-color .15s}.shell-account:hover,.shell-account.is-open{background:var(--brand-soft);border-color:var(--primary-line)}.shell-account-avatar{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--primary);color:#fff;font-size:13px;font-weight:700}.shell-account-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell-account-caret{flex:none;color:var(--mute);transition:transform .15s}.shell-account.is-open .shell-account-caret{transform:rotate(180deg)}.account-menu{position:absolute;left:8px;right:8px;bottom:calc(100% + 8px);z-index:60;max-height:min(72vh,560px);overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.account-menu-head{display:flex;flex-direction:column;gap:2px;padding:6px 10px 8px;margin-bottom:4px;border-bottom:1px solid var(--line)}.account-menu-head b{font-size:13.5px;color:var(--text)}.account-menu-role{font-size:12px;color:var(--mute)}.account-menu-item{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:38px;padding:0 10px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-2);font:inherit;font-size:13.5px;font-weight:500;text-align:left;cursor:pointer;transition:background .15s,color .15s}.account-menu-item:hover{background:var(--brand-soft);color:var(--brand)}.account-menu-item.is-danger{color:var(--danger)}.account-menu-item.is-danger:hover{background:var(--danger-soft);color:var(--danger)}.account-menu-caret{color:var(--mute);transition:transform .15s}.account-menu-caret.is-open{transform:rotate(180deg)}.account-menu-sep{height:1px;background:var(--line);margin:4px 6px}.account-menu-status{padding:4px 10px 8px;border-radius:var(--radius-md);background:var(--primary-softer)}.account-menu-manage{display:block;margin-top:8px;padding-top:8px;border-top:1px solid var(--line);color:var(--brand);font-size:12.5px;font-weight:600}.account-menu-manage:hover{text-decoration:underline}.shell-main{flex:1;min-width:0;overflow-y:auto;padding:24px 28px 64px}.shell-main>.page{padding:0;flex:none}@media (max-width: 900px){.shell{flex-direction:column}.shell-side{width:100%;flex-direction:row;align-items:center;gap:10px;padding:10px 14px;border-right:none;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:40}.shell-brand{padding:0;flex:none}.shell-brand span{display:none}.shell-nav{flex-direction:row;gap:4px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.shell-nav::-webkit-scrollbar{display:none}.shell-nav a,.shell-nav .shell-nav-disabled{padding:0 10px;min-height:36px;white-space:nowrap;flex:none}.shell-foot{position:static;margin-top:0;padding:0;border-top:none;flex-direction:row;gap:8px;flex:none}.shell-account{width:auto;min-height:36px;padding:0 8px;border-color:var(--line)}.shell-account-name{max-width:90px}.account-menu{top:calc(100% + 8px);bottom:auto;left:auto;right:14px;width:min(88vw,300px)}.shell-main{padding:16px 14px 48px}}.select-species{min-height:36px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text);font-size:13px;font-weight:600;cursor:pointer;outline:none;transition:border-color .15s,box-shadow .15s}.select-species:hover{border-color:var(--primary)}.select-species:focus{border-color:var(--primary);box-shadow:var(--focus-ring)}.seedling-bar{display:flex;align-items:center;gap:12px;margin-bottom:18px}.seg-tabs{display:inline-flex;gap:4px;padding:4px;background:var(--bg-soft);border-radius:var(--radius-md)}.seg-tab{min-height:36px;padding:0 18px;border:none;border-radius:6px;background:transparent;color:var(--text-2);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.seg-tab:hover{color:var(--primary)}.seg-tab.active{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-sm)}.seg-tab:disabled{opacity:.55;cursor:not-allowed}.seg-tab:disabled:hover{color:var(--text-2)}.seg-tab.active:disabled:hover{color:var(--primary)}.map-placeholder{padding:60px 24px;text-align:center;color:var(--text-2)}.map-placeholder-icon{color:var(--muted);margin-bottom:12px}.map-placeholder h3{margin:0 0 8px;font-size:18px;color:var(--text)}.map-placeholder p{margin:0;font-size:13px}select.input,select.select,.select-species{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236E6E67' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px 16px;padding-right:36px;cursor:pointer}select.input:hover,select.select:hover,.select-species:hover{border-color:var(--primary)}.poster-page{position:relative;width:100%;height:100vh;overflow:hidden;background:#fff}.poster-stage{position:absolute;top:0;right:0;bottom:0;left:0}.poster-stage .viewer-card,.poster-stage .viewer-wrap{width:100%;height:100%;min-height:0}.poster-stage .viewer-card,.poster-stage .viewer-stage{border-radius:0;border:none;box-shadow:none}.poster-stage .viewer-card{height:100%}.poster-stage .viewer-stage{width:100%;height:100%;min-height:0;aspect-ratio:auto;background:#fff}.poster-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;align-content:center;gap:8px;color:var(--muted);text-align:center}.poster-top{position:absolute;top:0;left:0;right:0;z-index:5;display:flex;align-items:center;gap:16px;padding:12px 18px;background:#fffc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.poster-brand{display:inline-flex;align-items:center;gap:8px;color:var(--primary);font-weight:800;font-size:15px;flex:none;-webkit-user-select:none;user-select:none;cursor:default}.poster-brand img{width:32px;height:32px;object-fit:contain}.poster-switch{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;min-width:0}.poster-arrow{width:40px;height:40px;flex:none;display:inline-grid;place-items:center;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);cursor:pointer;transition:background .15s,color .15s,opacity .15s}.poster-arrow:hover:not(:disabled){background:var(--primary-soft);color:var(--primary)}.poster-arrow:disabled{opacity:.35;cursor:default}.poster-title{text-align:center;min-width:0}.poster-title b{display:block;font-size:16px;font-weight:800;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.poster-title span{display:block;margin-top:2px;font-size:12px;color:var(--muted)}.btn-poster-detail{flex:none;background:var(--primary);color:#fff;border:none;border-radius:9px;padding:0 18px;min-height:40px;font-weight:700;cursor:pointer;transition:background .15s}.btn-poster-detail:hover:not(:disabled){background:var(--primary-deep)}.btn-poster-detail:disabled{opacity:.4;cursor:default}.poster-detail-cover{width:100%;aspect-ratio:16 / 9;object-fit:contain;border-radius:10px;border:1px solid var(--line-soft);background:#fff;display:block;margin-bottom:12px}.poster-detail .info-section-title{margin-top:14px}.poster-detail .attr-grid{margin-top:8px}@media (max-width: 640px){.poster-top{padding:10px 12px;gap:10px}.poster-brand span{display:none}.poster-title b{font-size:14px}.poster-arrow{width:36px;height:36px}.poster-detail-cover{aspect-ratio:auto;max-height:150px;margin-bottom:10px}.poster-detail .info-section-title{margin-top:10px;margin-bottom:6px}.poster-detail .attr-grid{margin-top:6px}.poster-detail .kv-list{margin-top:8px}.poster-detail .kv{padding:6px 0}.poster-detail .kv span{min-width:0;overflow-wrap:anywhere}}.recent-card{padding:18px 20px 20px}.recent-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.recent-sub{font-size:12.5px;color:var(--text-2);margin-top:2px}.recent-empty{padding:28px 0;text-align:center;font-size:13px;color:var(--muted);border-top:1px solid var(--line-soft);margin-top:14px}.recent-list{margin-top:12px;display:flex;flex-direction:column;gap:10px}.recent-row{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--line-soft);border-radius:12px;background:#fff}.recent-thumb{width:64px;height:48px;flex:none;border-radius:8px;overflow:hidden;background:#f3f5f4;border:1px solid var(--line-soft);display:grid;place-items:center;font-size:11px;color:var(--muted)}.recent-thumb img{width:100%;height:100%;object-fit:cover}.recent-body{min-width:0;flex:1}.recent-title{display:flex;align-items:center;gap:8px;font-size:14px}.recent-title b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-meta{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin-top:6px;font-size:12px;color:var(--text-2)}.recent-meta .tag{height:20px}.recent-actions{display:flex;align-items:center;gap:8px;flex:none}.recent-actions .btn-ghost.danger{color:#b91c1c}.recent-actions .btn-ghost.danger:hover{background:var(--danger-soft);color:#b91c1c}.recent-pct{font-size:12.5px;color:var(--primary-deep);font-variant-numeric:tabular-nums}@media (max-width: 720px){.recent-row{flex-wrap:wrap}.recent-actions{width:100%;flex-wrap:wrap}.recent-actions .btn{flex:1;min-width:0}}.submit-tabs{max-width:1060px;margin:0 auto 18px}.submit-tabs .seg-tab{min-width:140px}.recent-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;margin-left:6px;padding:0 5px;border-radius:9px;background:var(--primary-soft);color:var(--primary-deep);font-size:11px;font-weight:700}.upload-thumb{width:56px;height:42px;flex:none;margin-left:auto;border-radius:8px;border:1px solid var(--line-soft);object-fit:cover;background:#f3f5f4;cursor:zoom-in}.img-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:600;display:grid;place-items:center;padding:24px;background:#0f172ab8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:zoom-out}.img-lightbox img{max-width:min(92vw,960px);max-height:88vh;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);object-fit:contain}.guide-steps{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.guide-step{display:flex;gap:var(--space-3);padding:var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.guide-step-no{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--primary);color:#fff;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.guide-step-body{min-width:0}.guide-step-body h3{margin:2px 0 6px;font-size:var(--fs-h3);font-weight:700;color:var(--ink)}.guide-step-body p{margin:0 0 6px;font-size:13.5px;line-height:1.7;color:var(--text-2)}.guide-step-body p:last-child{margin-bottom:0}.guide-step-body a{color:var(--primary);font-weight:600}.guide-step-body a:hover{text-decoration:underline}.guide-step-body .guide-step-tip{padding:6px 10px;border-radius:var(--radius-sm);background:var(--primary-softer);color:var(--ink-2);font-size:12.5px}.guide-foot{padding:var(--space-4)}.guide-foot .info-section-title{margin-bottom:var(--space-2)}.guide-foot p{margin:0;font-size:13.5px;line-height:1.7;color:var(--text-2)}
