:root{--primary:#c43d18;--primary-hover:#a83212;--primary-active:#8b290e;--primary-light:#ff5a2c14;--primary-border:#ffc4a7;--primary-gradient:linear-gradient(135deg, #ff7a3c, #ff4a1c);--success:#4caf7d;--success-light:#4caf7d1f;--warning:#a66b00;--warning-light:#fff8df;--warning-border:#ffe1ae;--danger:#e53935;--danger-active:#b03a2e;--danger-light:#fff0f0;--danger-border:#ffd0cc;--danger-gradient:linear-gradient(135deg, #ff6b5f, #e53935);--info:#4776c8;--info-light:#eef3ff;--bg:#f3f4f6;--surface:#fff;--surface-muted:#fafafa;--surface-dark:#111;--text:#2b2b2b;--text-regular:#555;--text-secondary:#666;--text-placeholder:#767676;--border:#eee;--border-dark:#ddd;--background:var(--bg);--text-muted:var(--text-secondary);--admin-nav-bg:#101828;--admin-nav-hover:#1d2939;--admin-nav-text:#d0d5dd;--admin-nav-text-strong:#f2f4f7;--admin-nav-text-muted:#98a2b3;--admin-nav-active:#ff5a2c29;--admin-nav-active-text:#ffb18f;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-pill:20px;--shadow-card:0 1px 3px #00000008;--shadow-dropdown:0 18px 45px #34251a29;--shadow-modal:0 24px 70px #0000003d;--modal-backdrop:#00000080;--z-modal:1000;--z-modal-nested:1100;--font-sm:12px;--font-md:14px;--font-lg:17px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:PingFang SC,Microsoft YaHei,system-ui,-apple-system,sans-serif;font-size:var(--font-md);margin:0}button,input,select,textarea{font:inherit}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--primary-border);outline-offset:2px}@media (pointer:coarse){:where(button,select,input[type=button],input[type=submit]){min-height:44px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}#app{min-height:100vh}h2{font-size:var(--font-lg);margin:0;font-weight:700}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:16px}.btn-outline{border:1px solid var(--border-dark);border-radius:var(--radius-sm);color:var(--primary);cursor:pointer;background:#fff;align-items:center;gap:6px;padding:7px 14px;font-size:13px;transition:border-color .15s,background .15s;display:inline-flex}.btn-outline:hover:not(:disabled){border-color:var(--primary);background:var(--primary-light)}.btn-outline:disabled{opacity:.55;cursor:not-allowed}.btn-primary{border-radius:var(--radius-pill);background:var(--primary-gradient);color:#fff;font-size:var(--font-md);cursor:pointer;border:none;align-items:center;gap:6px;padding:9px 20px;font-weight:600;transition:filter .15s,transform .1s;display:inline-flex;box-shadow:0 4px 12px #ff5a2c59}.btn-primary:hover:not(:disabled){filter:brightness(1.05)}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-primary:disabled{opacity:.7;cursor:not-allowed}.badge-success{background:var(--success-light);color:var(--success);font-size:var(--font-sm);border-radius:var(--radius-sm);padding:3px 10px;display:inline-block}.spinner{border:2px solid #ff5a2c40;border-top-color:var(--primary);border-radius:50%;width:13px;height:13px;animation:.8s linear infinite global-spin;display:inline-block}.spinner.light{border-color:#fff #fff6 #fff6}@keyframes global-spin{to{transform:rotate(360deg)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{border-radius:var(--radius-xs);background:#d5d5d5}::-webkit-scrollbar-track{background:0 0}.error-mask[data-v-bb751e9e]{z-index:2000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#14182094;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.error-dialog[data-v-bb751e9e]{border-radius:var(--radius-lg);width:min(440px,100%);box-shadow:var(--shadow-modal);text-align:center;background:#fff;padding:26px}.error-icon[data-v-bb751e9e]{background:var(--danger-light);width:44px;height:44px;color:var(--danger);border-radius:50%;place-items:center;margin:0 auto 12px;font-size:26px;font-weight:700;display:grid}h2[data-v-bb751e9e]{margin:0 0 10px;font-size:19px}p[data-v-bb751e9e]{color:var(--text-regular);overflow-wrap:anywhere;margin:0 0 16px;line-height:1.6}dl[data-v-bb751e9e]{border-radius:var(--radius-sm);text-align:left;font-size:var(--font-sm);background:#f7f7f8;grid-template-columns:auto 1fr;gap:6px 12px;padding:10px 12px;display:grid}dt[data-v-bb751e9e]{color:var(--text-secondary)}dd[data-v-bb751e9e]{overflow-wrap:anywhere;margin:0;font-family:monospace}.pending[data-v-bb751e9e]{font-size:var(--font-sm);color:#a65}.error-actions[data-v-bb751e9e]{gap:8px;margin-top:14px;display:flex}.error-actions button[data-v-bb751e9e]{border-radius:var(--radius-pill);cursor:pointer;font-size:var(--font-md);border:0;flex:1;padding:10px}.dismiss-one[data-v-bb751e9e]{background:var(--primary);color:#fff}.dismiss-all[data-v-bb751e9e]{background:var(--surface-muted);color:var(--text-secondary);border:1px solid var(--border)!important}.deployment-badge[data-v-943e6cc6]{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg);height:28px;color:var(--text-secondary);font-size:var(--font-sm);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:6px;padding:0 9px;display:inline-flex}.status-dot[data-v-943e6cc6]{background:var(--success);border-radius:50%;width:7px;height:7px}@media (width<=900px){.deployment-badge[data-v-943e6cc6]{display:none}}.platform-header[data-v-d0351767]{z-index:600;border-bottom:1px solid var(--border);background:var(--surface);flex:none;align-items:center;gap:28px;min-height:64px;padding:10px 24px;display:flex;position:relative}.brand[data-v-d0351767]{color:var(--text);align-items:center;gap:10px;text-decoration:none;display:flex}.brand-mark[data-v-d0351767]{border-radius:var(--radius-md);background:var(--primary-gradient);width:36px;height:36px;color:var(--surface);place-items:center;display:grid}.brand strong[data-v-d0351767],.brand small[data-v-d0351767]{display:block}.brand small[data-v-d0351767]{color:var(--text-secondary);font-size:var(--font-sm);margin-top:2px}nav[data-v-d0351767]{flex:1;gap:6px;display:flex}nav a[data-v-d0351767],.dropdown a[data-v-d0351767],.dropdown button[data-v-d0351767]{border-radius:var(--radius-sm);color:var(--text-regular);cursor:pointer;background:0 0;border:0;padding:8px 12px;text-decoration:none}nav a.router-link-active[data-v-d0351767]{background:var(--primary-light);color:var(--primary);font-weight:700}.actions[data-v-d0351767],.points[data-v-d0351767]{align-items:center;gap:8px;display:flex}.points[data-v-d0351767]{border-radius:var(--radius-pill);background:var(--warning-light);color:var(--warning);padding:8px 12px;text-decoration:none}.points small[data-v-d0351767]{color:var(--text-secondary)}.user-menu[data-v-d0351767]{position:relative}.user-trigger[data-v-d0351767]{border:1px solid var(--border-dark);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;padding:9px 12px}.login-trigger[data-v-d0351767]{color:var(--text);text-decoration:none}.dropdown[data-v-d0351767]{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);width:150px;box-shadow:var(--shadow-dropdown);padding:8px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.dropdown button[data-v-d0351767]{text-align:left}@media (width<=760px){.brand small[data-v-d0351767],nav[data-v-d0351767],.actions[data-v-d0351767]>:first-child{display:none}.platform-header[data-v-d0351767]{padding:10px 14px}.actions[data-v-d0351767]{margin-left:auto}}.platform-footer[data-v-6a41d4fd]{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);width:min(1240px,100% - 56px);min-height:60px;box-shadow:var(--shadow-card);flex:none;justify-content:space-between;align-items:center;gap:24px;margin:20px auto 24px;padding:14px 22px;display:flex}nav[data-v-6a41d4fd]{flex-wrap:wrap;gap:8px 22px;display:flex}nav a[data-v-6a41d4fd],p[data-v-6a41d4fd],p a[data-v-6a41d4fd]{color:var(--text-secondary);font-size:var(--font-md)}nav a[data-v-6a41d4fd],p a[data-v-6a41d4fd]{text-decoration:none}nav a[data-v-6a41d4fd]:hover,nav a.router-link-active[data-v-6a41d4fd],p a[data-v-6a41d4fd]:hover{color:var(--primary)}p[data-v-6a41d4fd]{white-space:nowrap;margin:0}p a[data-v-6a41d4fd]{font-weight:700}@media (width<=760px){.platform-footer[data-v-6a41d4fd]{flex-direction:column;align-items:flex-start;gap:14px;width:calc(100% - 28px);margin-bottom:14px;padding:18px}p[data-v-6a41d4fd]{white-space:normal}}.app-icon[data-v-e1e01cb4]{vertical-align:-.15em;flex-shrink:0}.image-zoom-mask[data-v-f1aad2ea]{z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0c0c0fd1;justify-content:center;align-items:center;padding:28px;display:flex;position:fixed;inset:0}.image-zoom-dialog[data-v-f1aad2ea]{border-radius:var(--radius-lg);background:#19191c;border:1px solid #ffffff47;flex-direction:column;gap:8px;max-width:min(1200px,92vw);max-height:92vh;padding:12px;display:flex;position:relative;box-shadow:0 28px 90px #0000008c}.image-zoom-dialog img[data-v-f1aad2ea]{object-fit:contain;border-radius:var(--radius-sm);background:var(--border);max-width:100%;max-height:calc(92vh - 58px);display:block}.image-zoom-dialog span[data-v-f1aad2ea]{color:#fff;text-align:center;font-size:var(--font-sm)}.image-zoom-close[data-v-f1aad2ea]{z-index:1;color:#fff;cursor:pointer;background:#0000009e;border:1px solid #ffffff80;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;transition:background .15s,transform .15s;display:grid;position:absolute;top:18px;right:18px}.image-zoom-close[data-v-f1aad2ea]:hover{background:var(--primary,var(--primary));transform:scale(1.08)}.boot[data-v-3bdb089b]{min-height:100vh;color:var(--text-secondary);place-items:center;display:grid}.app-shell[data-v-3bdb089b]{flex-direction:column;min-height:100dvh;display:flex}.app-shell.authenticated[data-v-3bdb089b]{flex-direction:column;height:100dvh;min-height:0;display:flex;overflow:hidden}.route-shell[data-v-3bdb089b]{flex:1;min-height:0;overflow:auto}.route-shell.with-footer[data-v-3bdb089b]{flex-direction:column;display:flex}.route-content[data-v-3bdb089b]{min-height:0}.route-shell.with-footer .route-content[data-v-3bdb089b]{flex:1 0 auto}.route-content[data-v-3bdb089b]:has(.app-layout){height:100%;overflow:hidden}
