:root { --app-primary-color: #1677ff; --app-bg-main: radial-gradient(circle at top, rgba(56, 154, 255, 0.08), transparent 26%), linear-gradient(180deg, #f3f7fb 0%, #eef3f8 100%); --app-bg-card: rgba(255, 255, 255, 0.92); --app-text-main: #1f2937; --app-border-color: rgba(15, 93, 166, 0.06); --app-shadow: 0 10px 24px rgba(15, 23, 42, 0.06); } :root[data-theme="minimal"] { --app-bg-main: #f9fafb; --app-bg-card: #ffffff; --app-text-main: #111827; --app-border-color: #e5e7eb; --app-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); } :root[data-theme="tech"] { --app-bg-main: radial-gradient(circle at 50% 0%, rgba(22, 119, 255, 0.15), transparent 40%), #0d1117; --app-bg-card: rgba(30, 41, 59, 0.7); --app-text-main: #e2e8f0; --app-border-color: rgba(22, 119, 255, 0.2); --app-shadow: 0 4px 20px rgba(0, 0, 0, 0.4); } body { margin: 0; padding: 0; background: var(--app-bg-main); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; color: var(--app-text-main); transition: background 0.3s ease, color 0.3s ease; } .ant-layout { background: transparent !important; } .ant-layout-sider { background: var(--app-bg-card) !important; border-right: 1px solid var(--app-border-color); transition: background 0.3s ease; } .ant-menu-light { background: transparent !important; color: var(--app-text-main) !important; } .ant-menu-light .ant-menu-item a { color: var(--app-text-main) !important; } /* Sider animation refinement */ .app-sider .ant-layout-sider-children { display: flex; flex-direction: column; } /* Scrollbar styling */ ::-webkit-scrollbar { width: 6px; height: 6px; } ::-webkit-scrollbar-thumb { background: #ccc; border-radius: 3px; } ::-webkit-scrollbar-track { background: #f1f1f1; } #root { min-height: 100vh; } .app-page { height: 100%; padding: 24px; display: flex; flex-direction: column; overflow: auto; } .app-page--contained { max-width: 1280px; margin: 0 auto; } .app-page__filter-card, .app-page__content-card, .app-page__panel-card { border: 1px solid var(--app-border-color); border-radius: 16px !important; box-shadow: var(--app-shadow); background: var(--app-bg-card); backdrop-filter: blur(10px); transition: background 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease; } .app-page__filter-card { margin-bottom: 16px; flex-shrink: 0; } .app-page__content-card { min-height: 0; } .app-page__content-card .ant-card-body, .app-page__panel-card .ant-card-body { min-height: 0; } .app-page__toolbar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; } .app-page__page-actions { display: flex; justify-content: flex-end; align-items: center; margin: -8px 0 16px; } .app-page__page-actions .ant-btn { min-width: 96px; border-radius: 10px !important; } .app-page__toolbar .ant-input, .app-page__toolbar .ant-input-affix-wrapper, .app-page__toolbar .ant-select-selector, .app-page__toolbar .ant-picker, .app-page__toolbar .ant-input-number, .app-page__toolbar .ant-btn { border-radius: 10px !important; } .app-page__toolbar .ant-btn { min-width: 88px; } .app-page__drawer-footer { display: flex; justify-content: flex-end; gap: 12px; padding: 8px 4px 4px; } .app-page__split { flex: 1; min-height: 0; } .app-page__empty-state { height: 100%; display: flex; align-items: center; justify-content: center; background: rgba(255, 255, 255, 0.78); border-radius: 16px; border: 1px dashed rgba(148, 163, 184, 0.5); } .tabular-nums { font-variant-numeric: tabular-nums; } @media (max-width: 768px) { .app-page { padding: 16px; } }