:root{--color-primary:#1677ff;--color-primary-hover:#4096ff;--color-primary-light:#e6f4ff;--color-secondary:#722ed1;--color-secondary-light:#f9f0ff;--color-accent:#eb2f96;--color-success:#52c41a;--color-success-light:#f6ffed;--color-success-border:#b7eb8f;--color-warning:#faad14;--color-warning-light:#fffbe6;--color-danger:#ff4d4f;--color-danger-light:#fff2f0;--color-info:#1677ff;--color-info-light:#e6f4ff;--status-pending:orange;--status-in-progress:blue;--status-done:green;--status-rejected:red;--status-approved:green;--status-review:purple;--color-bg-app:#f0f2f5;--color-bg-primary:#fff;--color-bg-secondary:#f5f5f5;--color-bg-tertiary:#fafafa;--color-bg-sidebar:#001529;--color-bg-sidebar-light:#fff;--color-bg-header:#fff;--color-bg-canvas:#e8e0d8;--color-bg-canvas-dark:#d8d0c8;--color-border:#e8e8e8;--color-border-secondary:#f0f0f0;--color-border-input:#d9d9d9;--color-text-primary:#1a1a1a;--color-text-secondary:#666;--color-text-tertiary:#999;--color-text-placeholder:#bfbfbf;--color-text-inverse:#fff;--color-text-link:#1677ff;--space-2xs:2px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--radius-xs:2px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--shadow-xs:0 1px 2px rgba(0,0,0,.05);--shadow-sm:0 2px 8px rgba(0,0,0,.09);--shadow-md:0 4px 16px rgba(0,0,0,.12);--shadow-lg:0 8px 24px rgba(0,0,0,.15);--shadow-card:0 2px 8px rgba(0,0,0,.08);--font-family:"Inter",-apple-system,blinkmacsystemfont,"Segoe UI",roboto,sans-serif;--font-size-xs:11px;--font-size-sm:12px;--font-size-base:14px;--font-size-md:16px;--font-size-lg:18px;--font-size-xl:20px;--font-size-2xl:24px;--font-size-3xl:30px;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-base:1.5;--line-height-relaxed:1.75;--sidebar-width:220px;--sidebar-collapsed-width:64px;--header-height:56px;--content-max-width:1200px;--content-padding:var(--space-lg) var(--space-md);--transition-fast:0.15s ease;--transition-base:0.25s ease;--transition-slow:0.35s ease;--z-base:1;--z-dropdown:1000;--z-sticky:1020;--z-fixed:1030;--z-modal-backdrop:1040;--z-modal:1050;--z-tooltip:1070;--z-toast:1080}[data-theme=dark]{--color-bg-app:#141414;--color-bg-primary:#1f1f1f;--color-bg-secondary:#2a2a2a;--color-bg-tertiary:#242424;--color-bg-sidebar:#001529;--color-bg-header:#1f1f1f;--color-bg-canvas:#2a2a2a;--color-border:#303030;--color-border-secondary:#2a2a2a;--color-border-input:#424242;--color-text-primary:#e0e0e0;--color-text-secondary:#a0a0a0;--color-text-tertiary:#6a6a6a;--color-text-placeholder:#525252;--shadow-card:0 2px 8px rgba(0,0,0,.4);--shadow-md:0 4px 16px rgba(0,0,0,.5)}body,html{background-color:var(--color-bg-app);color:var(--color-text-primary);font-family:var(--font-family);margin:0}#ice-container,body,html{height:100%}.app-shell{display:flex;height:100vh;overflow:hidden}.app-shell-content{display:flex;flex:1;flex-direction:column;min-width:0;overflow:hidden}.app-shell-main{background:var(--color-bg-app);flex:1;overflow-y:auto}.page-container{margin:0 auto;max-width:var(--content-max-width);padding:var(--space-lg) var(--space-md)}.page-header{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-md);margin-bottom:var(--space-lg)}.page-header-title{flex:1;min-width:0}.fabritor-layout .ant-tabs-nav-wrap{width:64px}.fabritor-layout .ant-tabs-left>.ant-tabs-nav .ant-tabs-tab{padding:8px 0}.fabritor-layout .ant-tabs-tab-btn{width:100%}.ant-tabs-content-holder{overflow:auto!important}.fabritor-layout h5.ant-typography{margin:0}.fabritor-color-setter .rcs .rc-input-number-affix-wrapper{height:20px}.fabritor-color-setter .rcs-preset-colors{gap:5px}.fabritor-toolbar-item{align-items:center;border-radius:6px;cursor:pointer;display:inline-flex;line-height:0;padding:4px;transition:background-color var(--transition-fast)}.fabritor-toolbar-item:hover{background-color:rgba(64,87,109,.07)}#fabritor-rough-svg{left:99999999px;position:fixed;top:99999999px;z-index:-1}.skeleton-card-grid{grid-gap:var(--space-md);display:grid;gap:var(--space-md)}.status-tag-pending{background-color:#fff7e6;border-color:#ffd591;color:#d46b08}.status-tag-in_progress{background-color:#e6f4ff;border-color:#91caff;color:#0958d9}.status-tag-approved,.status-tag-done{background-color:#f6ffed;border-color:#b7eb8f;color:#389e0d}.status-tag-rejected{background-color:#fff2f0;border-color:#ffccc7;color:#cf1322}.status-tag-review{background-color:#f9f0ff;border-color:#d3adf7;color:#531dab}.app-sidebar{background:var(--color-bg-sidebar);display:flex;flex-direction:column;flex-shrink:0;min-height:100vh;position:relative;transition:width var(--transition-base);width:var(--sidebar-width);z-index:var(--z-sticky)}.app-sidebar.collapsed{width:var(--sidebar-collapsed-width)}.page-breadcrumb{margin-bottom:var(--space-md)}.table-responsive-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto;width:100%}.filter-bar{align-items:flex-end;display:flex;flex-wrap:wrap;gap:var(--space-sm)}.ant-card.hoverable-enhanced{border:1px solid var(--color-border);transition:all var(--transition-base)}.ant-card.hoverable-enhanced:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.empty-state-container{flex-direction:column;gap:var(--space-md);padding:var(--space-3xl) var(--space-lg);text-align:center}.empty-state-container,.login-page-wrapper{align-items:center;display:flex;justify-content:center}.login-page-wrapper{background:linear-gradient(135deg,#f0f4ff,#f5f0ff 50%,#fff0f6);min-height:100vh;padding:var(--space-md)}.dashboard-stat-card{border-radius:var(--radius-lg);transition:all var(--transition-base)}.dashboard-stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.page-thumbnail-empty{align-items:center;background:linear-gradient(135deg,#f5f5f5,#ebebeb);color:var(--color-text-tertiary);display:flex;flex-direction:column;gap:var(--space-sm);height:150px;justify-content:center}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-fade-in{animation:fadeIn var(--transition-base) both}@media (max-width:768px){.page-container{padding:var(--space-md) var(--space-sm)}.page-header{align-items:flex-start;flex-direction:column}.app-sidebar{height:100vh;left:0;position:fixed;top:0;transform:translateX(-100%);transition:transform var(--transition-base);z-index:var(--z-modal)}.app-sidebar.mobile-open{transform:translateX(0)}.filter-bar{align-items:stretch;flex-direction:column}.filter-bar>*{width:100%!important}}@font-face{font-display:swap;font-family:AlibabaPuHuiTi;src:url(/assets/AlibabaPuHuiTi-3-55-Regular.ec6e9527.woff) format("woff"),url(/assets/AlibabaPuHuiTi-3-55-Regular.af25a99f.woff2) format("woff2")}@font-face{font-display:swap;font-family:SourceHanSans;src:url(/assets/SourceHanSansCN-Regular.be37d606.otf) format("opentype")}@font-face{font-display:swap;font-family:霞鹜新晰黑;src:url(/assets/LXGWNeoXiHei.4887e3d5.ttf)}@font-face{font-display:swap;font-family:霞鹜尚智黑;src:url(/assets/LXGWFasmartGothic.db2af0dc.ttf)}@font-face{font-display:swap;font-family:霞鹜文楷;src:url(/assets/LXGWWenKai-Regular.1ab105cd.ttf)}@font-face{font-display:swap;font-family:小赖字体;src:url(/assets/XiaolaiSC-Regular.ffc16a31.ttf)}@font-face{font-display:swap;font-family:"SourceHanSerif";src:url(/assets/SourceHanSerifCN-Regular.6357e3ce.ttf)}@font-face{font-display:swap;font-family:方正楷体;src:url(/assets/%E6%96%B9%E6%AD%A3%E6%A5%B7%E4%BD%93%E7%AE%80%E4%BD%93.883f21c6.ttf)}@font-face{font-display:swap;font-family:悠哉字体;src:url(/assets/Yozai-Regular.e58757a7.ttf)}@font-face{font-display:swap;font-family:包图小白体;src:url(/assets/%E5%8C%85%E5%9B%BE%E5%B0%8F%E7%99%BD%E4%BD%93.512301c4.ttf)}@font-face{font-display:swap;font-family:手写杂字体;src:url(/assets/%E6%89%8B%E5%86%99%E6%9D%82%E5%AD%97%E4%BD%93.6b4e801c.ttf)}@font-face{font-display:swap;font-family:胡晓波男神体;src:url(/assets/%E8%83%A1%E6%99%93%E6%B3%A2%E7%94%B7%E7%A5%9E%E4%BD%93.7b9d8e58.otf) format("opentype")}@font-face{font-display:swap;font-family:胡晓波骚包体;src:url(/assets/%E8%83%A1%E6%99%93%E6%B3%A2%E9%AA%9A%E5%8C%85%E4%BD%93.b3ee744c.otf) format("opentype")}@font-face{font-display:swap;font-family:站酷快乐体;src:url(/assets/%E7%AB%99%E9%85%B7%E5%BF%AB%E4%B9%90%E4%BD%93.d51c83a5.ttf)}@font-face{font-display:swap;font-family:站酷文艺体;src:url(/assets/%E7%AB%99%E9%85%B7%E6%96%87%E8%89%BA%E4%BD%93.fc574632.ttf)}@font-face{font-display:swap;font-family:站酷小薇LOGO体;src:url(/assets/%E7%AB%99%E9%85%B7%E5%B0%8F%E8%96%87LOGO%E4%BD%93.3bad0b2d.otf) format("opentype")}@font-face{font-display:swap;font-family:SmileySans;src:url(/assets/SmileySans-Oblique.6da0ce40.ttf)}