.app-header[data-v-fe335f2c]{height:var(--header-height);align-items:center;gap:var(--sp-4);padding:0 var(--sp-6);background:var(--bg-header);border-bottom:1px solid var(--border-divider);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:var(--z-header);display:flex;position:sticky;top:0}.brand[data-v-fe335f2c]{align-items:center;gap:var(--sp-2);cursor:pointer;flex-shrink:0;display:flex}.brand-name[data-v-fe335f2c]{font-weight:var(--fw-semibold);font-size:var(--fs-lg);white-space:nowrap}.breadcrumb[data-v-fe335f2c]{align-items:center;gap:var(--sp-1);flex:1;min-width:0;display:flex;overflow:hidden}.crumb[data-v-fe335f2c]{font-size:var(--fs-sm);color:var(--text-secondary);white-space:nowrap}.crumb.current[data-v-fe335f2c]{color:var(--text-primary);font-weight:var(--fw-medium)}.crumb-sep[data-v-fe335f2c]{color:var(--text-tertiary)}.header-right[data-v-fe335f2c]{align-items:center;gap:var(--sp-3);flex-shrink:0;display:flex}.credit-badge[data-v-fe335f2c]{border-radius:var(--radius-full);background:var(--brand-primary-bg);color:var(--text-credit);font-weight:var(--fw-semibold);font-size:var(--fs-sm);align-items:center;gap:4px;padding:4px 12px;display:flex}.credit-icon[data-v-fe335f2c]{font-size:var(--fs-xs)}.icon-btn[data-v-fe335f2c]{border-radius:var(--radius-md);width:34px;height:34px;font-size:var(--fs-lg);justify-content:center;align-items:center;transition:background .15s;display:flex}.icon-btn[data-v-fe335f2c]:hover{background:var(--bg-surface-hover)}.user-menu[data-v-fe335f2c]{align-items:center;gap:var(--sp-2);display:flex}.user-name[data-v-fe335f2c]{font-size:var(--fs-sm);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.role-tag[data-v-fe335f2c]{border-radius:var(--radius-full);font-size:var(--fs-xs);font-weight:var(--fw-semibold);white-space:nowrap;flex-shrink:0;padding:2px 8px}.role-admin[data-v-fe335f2c]{color:#3b82f6;background:#3b82f624}.role-vip[data-v-fe335f2c]{color:#b45309;background:#eab3082e}.primary-btn[data-v-fe335f2c]{border-radius:var(--radius-md);background:var(--btn-primary-bg);color:var(--btn-primary-text);font-size:var(--fs-sm);font-weight:var(--fw-medium);padding:6px 16px;transition:background .15s}.primary-btn[data-v-fe335f2c]:hover{background:var(--btn-primary-hover-bg)}.ghost-btn[data-v-fe335f2c]{border-radius:var(--radius-md);color:var(--btn-ghost-text);font-size:var(--fs-sm);padding:6px 12px;transition:background .15s,color .15s}.ghost-btn[data-v-fe335f2c]:hover{background:var(--btn-ghost-hover-bg);color:var(--btn-ghost-hover-text)}.grant-toast[data-v-fe335f2c]{top:calc(100% + 8px);right:var(--sp-6);align-items:center;gap:var(--sp-2);padding:10px var(--sp-4);border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--bg-surface);color:var(--text-primary);box-shadow:var(--shadow-lg);font-size:var(--fs-sm);cursor:pointer;z-index:1000;display:flex;position:absolute}.grant-toast-icon[data-v-fe335f2c]{color:var(--brand-primary)}.grant-toast-close[data-v-fe335f2c]{color:var(--text-tertiary);font-size:var(--fs-xs)}.grant-fade-enter-active[data-v-fe335f2c],.grant-fade-leave-active[data-v-fe335f2c]{transition:opacity .25s,transform .25s}.grant-fade-enter-from[data-v-fe335f2c],.grant-fade-leave-to[data-v-fe335f2c]{opacity:0;transform:translateY(-6px)}.minimal-layout[data-v-8837d087]{flex-direction:column;min-height:100vh;display:flex}.minimal-main[data-v-8837d087]{padding:var(--sp-6);flex:1;overflow-y:auto}:root{--color-neutral-50:#f8fafc;--color-neutral-100:#f1f5f9;--color-neutral-200:#e2e8f0;--color-neutral-300:#cbd5e1;--color-neutral-400:#94a3b8;--color-neutral-500:#64748b;--color-neutral-600:#475569;--color-neutral-700:#334155;--color-neutral-800:#1e293b;--color-neutral-900:#0f172a;--color-neutral-950:#020617;--color-brand-50:#eff6ff;--color-brand-100:#dbeafe;--color-brand-200:#bfdbfe;--color-brand-300:#93c5fd;--color-brand-400:#60a5fa;--color-brand-500:#3b82f6;--color-brand-600:#2563eb;--color-brand-700:#1d4ed8;--color-brand-800:#1e40af;--color-brand-900:#1e3a8a;--color-success-500:#22c55e;--color-success-600:#16a34a;--color-warning-500:#f59e0b;--color-danger-500:#ef4444;--color-danger-600:#dc2626;--color-info-500:#3b82f6;--color-credit:#f59e0b;--color-credit-deep:#d97706;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:18px;--fs-2xl:22px;--fs-3xl:28px;--fs-4xl:36px;--fw-normal:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--lh-tight:1.25;--lh-normal:1.5;--lh-loose:1.75;--z-header:100;--z-sidebar:90;--z-overlay:80;--z-modal:200;--z-tooltip:300;--header-height:56px;--left-sidebar-width:240px;--right-sidebar-width:340px;--bottom-panel-height:120px;--btn-primary-bg:var(--brand-primary);--btn-primary-text:#fff;--btn-primary-hover-bg:var(--brand-primary-hover);--btn-primary-disabled-bg:var(--color-neutral-300);--btn-primary-disabled-text:var(--color-neutral-500);--btn-secondary-bg:var(--bg-surface);--btn-secondary-text:var(--text-primary);--btn-secondary-border:var(--border-default);--btn-secondary-hover-bg:var(--bg-surface-hover);--btn-ghost-text:var(--text-secondary);--btn-ghost-hover-bg:var(--bg-surface-hover);--btn-ghost-hover-text:var(--text-primary);--input-bg:var(--bg-surface);--input-text:var(--text-primary);--input-border:var(--border-default);--input-focus-border:var(--border-focus);--input-focus-ring:#2563eb33;--input-placeholder:var(--text-tertiary);--input-disabled-bg:var(--bg-surface-hover);--card-bg:var(--bg-surface);--card-border:var(--border-default);--card-shadow:var(--shadow-sm);--card-radius:var(--radius-md);--table-header-bg:var(--bg-surface-hover);--table-row-hover:var(--bg-surface-hover);--table-border:var(--border-divider);--badge-bg:var(--brand-primary-bg);--badge-text:var(--brand-primary);--badge-radius:var(--radius-full)}:root,[data-theme=light]{--bg-page:var(--color-neutral-50);--bg-surface:#fff;--bg-surface-hover:var(--color-neutral-100);--bg-surface-active:var(--color-neutral-200);--bg-sidebar:#fff;--bg-header:#ffffffeb;--bg-viewport:#e8edf4;--bg-overlay:#0f172a80;--bg-tooltip:var(--color-neutral-800);--text-primary:var(--color-neutral-900);--text-secondary:var(--color-neutral-600);--text-tertiary:var(--color-neutral-500);--text-inverse:#fff;--text-link:var(--color-brand-600);--text-link-hover:var(--color-brand-700);--text-credit:var(--color-credit-deep);--border-default:var(--color-neutral-200);--border-hover:var(--color-neutral-300);--border-focus:var(--color-brand-500);--border-divider:var(--color-neutral-200);--shadow-sm:0 1px 2px #0f172a0f;--shadow-md:0 4px 6px #0f172a14;--shadow-lg:0 10px 15px #0f172a1a;--shadow-xl:0 20px 25px #0f172a26;--brand-primary:var(--color-brand-600);--brand-primary-hover:var(--color-brand-700);--brand-primary-bg:#2563eb14;--brand-accent:var(--color-brand-500);--list-item-active-bg:#2563eb1f;--viewport-overlay-bg:#ffffffe6;--viewport-toolbar-bg:#ffffffd9;--viewport-toolbar-border:var(--color-neutral-200)}[data-theme=dark]{--bg-page:var(--color-neutral-900);--bg-surface:var(--color-neutral-800);--bg-surface-hover:var(--color-neutral-700);--bg-surface-active:var(--color-neutral-600);--bg-sidebar:var(--color-neutral-800);--bg-header:#1e293bf2;--bg-viewport:#0a0a1a;--bg-overlay:#000000b3;--bg-tooltip:var(--color-neutral-700);--text-primary:var(--color-neutral-100);--text-secondary:var(--color-neutral-400);--text-tertiary:var(--color-neutral-500);--text-inverse:var(--color-neutral-900);--text-link:var(--color-brand-400);--text-link-hover:var(--color-brand-300);--text-credit:var(--color-credit);--border-default:var(--color-neutral-700);--border-hover:var(--color-neutral-600);--border-focus:var(--color-brand-400);--border-divider:var(--color-neutral-700);--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px #0006;--shadow-lg:0 10px 15px #00000080;--shadow-xl:0 20px 25px #0009;--brand-primary:var(--color-brand-400);--brand-primary-hover:var(--color-brand-300);--brand-primary-bg:#60a5fa26;--brand-accent:var(--color-brand-300);--list-item-active-bg:#60a5fa2e;--viewport-overlay-bg:#0f172ae6;--viewport-toolbar-bg:#0f172ad9;--viewport-toolbar-border:var(--color-neutral-700)}.fade-enter-active,.fade-leave-active{transition:opacity .2s}.fade-enter-from,.fade-leave-to{opacity:0}.pop-enter-active,.pop-leave-active{transition:transform .2s,opacity .2s}.pop-enter-from,.pop-leave-to{opacity:0;transform:scale(.96)}.slide-enter-active,.slide-leave-active{transition:transform .25s}.slide-enter-from,.slide-leave-to{transform:translate(-100%)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{width:100%;height:100%}body{font-family:var(--font-sans);font-size:var(--fs-md);line-height:var(--lh-normal);color:var(--text-primary);background-color:var(--bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .25s,color .25s}a{color:var(--text-link);text-decoration:none;transition:color .15s}a:hover{color:var(--text-link-hover)}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,select,textarea{font-family:inherit;font-size:inherit;color:var(--input-text);background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-sm);outline:none;padding:8px 12px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--input-focus-border);box-shadow:0 0 0 3px var(--input-focus-ring)}input::placeholder,textarea::placeholder{color:var(--input-placeholder)}h1,h2,h3,h4,h5,h6{font-weight:var(--fw-semibold);line-height:var(--lh-tight)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--card-radius);box-shadow:var(--card-shadow)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-credit{color:var(--text-credit)}.unit-input{width:100%;min-width:0;display:block;position:relative}.unit-input>input{width:100%;padding-right:34px}.unit-input-suffix{font-size:var(--fs-xs);color:var(--text-tertiary);pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--sp-2)}.gap-4{gap:var(--sp-4)}.flex-1{flex:1;min-width:0}.overflow-hidden{overflow:hidden}
