 :root { --font-sans: 'Inter', 'Segoe UI', 'Microsoft YaHei', 'PingFang SC', system-ui, sans-serif; --font-mono: 'JetBrains Mono', 'Cascadia Code', 'SF Mono', 'Segoe UI Mono', Consolas, monospace; --bg-deep: #060b14; --bg: #0a0f1f; --bg-soft: #10172a; --bg-panel: rgba(16, 24, 40, 0.88); --bg-panel-strong: rgba(20, 30, 52, 0.94); --bg-glass: rgba(255, 255, 255, 0.04); --bg-glass-strong: rgba(255, 255, 255, 0.07); --bg-hover: rgba(0, 212, 255, 0.09); --bg-hover-purple: rgba(124, 58, 237, 0.08); --surface: rgba(12, 20, 36, 0.82); --surface-2: rgba(18, 28, 48, 0.90); --surface-soft: rgba(255, 255, 255, 0.025); --surface-elevated: rgba(20, 30, 52, 0.95); --border: rgba(255, 255, 255, 0.07); --border-strong: rgba(0, 212, 255, 0.18); --border-glow: rgba(0, 212, 255, 0.12); --border-highlight: rgba(255, 255, 255, 0.05); --text: #f1f5f9; --text-primary: #ffffff; --text2: #94a3b8; --text3: #64748b; --text-muted: #475569; --accent: #00d4ff; --accent-2: #66e5ff; --accent-3: #00a8d4; --accent-light: rgba(0, 212, 255, 0.12); --accent-subtle: rgba(0, 212, 255, 0.06); --accent-glow: rgba(0, 212, 255, 0.28); --accent-strong: rgba(0, 212, 255, 0.20); --purple: #8b5cf6; --purple-2: #a78bfa; --purple-3: #7c3aed; --purple-light: rgba(139, 92, 246, 0.14); --purple-glow: rgba(124, 58, 237, 0.24); --green: #10b981; --green-light: rgba(16, 185, 129, 0.14); --green-bright: #34d399; --red: #f43f5e; --red-light: rgba(244, 63, 94, 0.14); --orange: #f59e0b; --orange-light: rgba(245, 158, 11, 0.14); --amber: #fbbf24; --amber-light: rgba(251, 191, 36, 0.12); --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.35); --shadow: 0 8px 32px rgba(0, 0, 0, 0.45); --shadow-md: 0 12px 40px rgba(0, 0, 0, 0.55); --shadow-lg: 0 20px 60px rgba(0, 0, 0, 0.65); --shadow-glow-cyan: 0 0 24px rgba(0, 212, 255, 0.22); --shadow-glow-purple: 0 0 24px rgba(124, 58, 237, 0.18); --glow-line: inset 0 1px 0 rgba(255, 255, 255, 0.035); --radius: 16px; --radius-sm: 10px; --radius-xs: 8px; --radius-lg: 22px; --transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1); --transition-slow: 0.35s cubic-bezier(0.4, 0, 0.2, 1); --transition-spring: 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); } * { box-sizing: border-box; } html, body { min-height: 100%; } body { margin: 0; color: var(--text); font: 14px/1.68 var(--font-sans); font-weight: 400; letter-spacing: 0.01em; background: radial-gradient(ellipse 80% 50% at 50% -15%, rgba(0, 212, 255, 0.14), transparent 50%), radial-gradient(ellipse 50% 40% at 85% 0%, rgba(124, 58, 237, 0.10), transparent 40%), radial-gradient(ellipse 60% 35% at 15% 0%, rgba(56, 189, 248, 0.08), transparent 40%), radial-gradient(ellipse 100% 70% at 50% 100%, rgba(0, 212, 255, 0.04), transparent 60%), linear-gradient(180deg, #060b14 0%, #0a0f1f 30%, #0f172a 70%, #0d1424 100%); background-attachment: fixed; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; } body::before { content: ''; position: fixed; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(255, 255, 255, 0.018) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.018) 1px, transparent 1px); background-size: 28px 28px; mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.46), transparent 88%); } a { color: var(--accent); } h1, h2, h3, h4, h5, h6, .view-title, .dashboard-hero-copy h1, .l-header h1, .s { font-family: var(--font-sans); text-shadow: 0 0 18px rgba(0, 212, 255, 0.16); } .l-header { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 18px 24px; color: #fff; background: linear-gradient(135deg, rgba(20, 27, 45, 0.94), rgba(10, 14, 26, 0.90)), linear-gradient(90deg, rgba(0, 212, 255, 0.10), rgba(124, 58, 237, 0.08)); border-bottom: 1px solid rgba(0, 212, 255, 0.18); box-shadow: 0 12px 30px rgba(0, 0, 0, 0.38); backdrop-filter: blur(18px); } .l-header::after { content: ''; position: absolute; left: 24px; right: 24px; bottom: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(0, 212, 255, 0.42), transparent); } .l-header h1 { margin: 0; font-size: 21px; font-weight: 800; letter-spacing: -0.03em; } .l-header .sub { font-size: 13px; color: rgba(232, 244, 255, 0.76); font-weight: 600; } .l-header .home-link, .l-header .nav-link, .l-header a[href="/"], .l-header a[href^="javascript:history.back"] { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 14px; border-radius: 999px !important; border: 1px solid rgba(148, 163, 184, 0.24) !important; background: rgba(255, 255, 255, 0.05); color: rgba(255, 255, 255, 0.82) !important; text-decoration: none; font-size: 12px !important; font-weight: 700 !important; letter-spacing: 0.02em; transition: transform var(--transition), background var(--transition), border-color var(--transition), box-shadow var(--transition); } .l-header .home-link:hover, .l-header .nav-link:hover, .l-header a[href="/"]:hover, .l-header a[href^="javascript:history.back"]:hover { transform: translateY(-1px); background: rgba(56, 189, 248, 0.12); border-color: rgba(0, 212, 255, 0.36) !important; box-shadow: 0 10px 22px rgba(0, 212, 255, 0.16); color: #fff !important; } .l-header .nav-link.active { background: linear-gradient(135deg, rgba(0, 212, 255, 0.18), rgba(124, 58, 237, 0.18)); border-color: rgba(0, 212, 255, 0.42) !important; color: #fff !important; box-shadow: var(--glow-primary); } .search-input, .l-header .search-input { min-width: 140px; min-height: 36px; padding: 0 14px; border: 1px solid rgba(148, 163, 184, 0.24) !important; border-radius: 999px !important; background: rgba(255, 255, 255, 0.07) !important; color: var(--text) !important; font-size: 13px !important; font-weight: 600; outline: none; transition: border-color var(--transition), box-shadow var(--transition), background var(--transition); } .search-input::placeholder, .l-header .search-input::placeholder { color: rgba(202, 222, 243, 0.46); } .search-input:focus, .l-header .search-input:focus { border-color: rgba(125, 211, 252, 0.48) !important; background: rgba(255, 255, 255, 0.10) !important; box-shadow: 0 0 0 3px rgba(0, 212, 255, 0.12), var(--glow-primary); } .l-toolbar, .toolbar { margin: 18px 24px 0; padding: 14px 16px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; background: var(--bg-panel); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--glow-line), var(--shadow); backdrop-filter: blur(16px); } .l-toolbar .info, .toolbar .stat, .l-toolbar .info-text, .l-pager .info { margin-left: auto; font-size: 12px; color: var(--text3); font-weight: 600; } .l-toolbar input, .l-toolbar select, .toolbar input, .toolbar select { min-height: 40px; padding: 0 14px; border: 1px solid rgba(148, 163, 184, 0.18); border-radius: 999px; background: rgba(255, 255, 255, 0.05); color: var(--text); font-size: 13px; outline: none; transition: border-color var(--transition), box-shadow var(--transition), background var(--transition); } .l-toolbar input:focus, .l-toolbar select:focus, .toolbar input:focus, .toolbar select:focus { border-color: rgba(125, 211, 252, 0.46); background: rgba(255, 255, 255, 0.08); box-shadow: 0 0 0 4px rgba(56, 189, 248, 0.10); } .btn-sm, .l-toolbar button, .toolbar .btn, .toolbar button, .l-pager button, .pagination button, button { min-height: 38px; padding: 0 16px; border: 1px solid rgba(148, 163, 184, 0.18); border-radius: 999px; background: rgba(255, 255, 255, 0.06); color: var(--text2); font-size: 12px; font-weight: 700; font-family: var(--font-sans); letter-spacing: 0.01em; cursor: pointer; transition: transform var(--transition), background var(--transition), border-color var(--transition), box-shadow var(--transition), color var(--transition); } .btn-sm:hover, .l-toolbar button:hover, .toolbar .btn:hover, .toolbar button:hover, .l-pager button:hover:not(:disabled), .pagination button:hover:not(:disabled), button:hover { transform: translateY(-1px); background: rgba(56, 189, 248, 0.12); border-color: rgba(125, 211, 252, 0.34); color: #fff; box-shadow: 0 12px 26px rgba(0, 212, 255, 0.16); } .btn-sm.primary, .toolbar .btn-primary, button.primary { color: #fff; border-color: rgba(0, 212, 255, 0.42); background: linear-gradient(135deg, rgba(0, 212, 255, 0.92), rgba(124, 58, 237, 0.82)); box-shadow: 0 4px 15px rgba(0, 212, 255, 0.24); } .btn-sm.primary:hover, .toolbar .btn-primary:hover, button.primary:hover { background: linear-gradient(135deg, rgba(51, 221, 255, 0.94), rgba(124, 58, 237, 0.86)); box-shadow: var(--glow-primary), var(--glow-accent); } .l-stats, .summary { margin: 18px 24px 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; } .l-stats.category-only { grid-template-columns: repeat(3, minmax(140px, 220px)); justify-content: start; } .l-stats.category-only .l-stat { min-height: 76px; padding: 12px 16px; } .l-stats.category-only .l-stat .n { font-size: 22px; } .l-stats.category-only .l-stat .l { margin-top: 5px; } @media (max-width: 640px) { .l-stats.category-only { grid-template-columns: repeat(3, minmax(0, 1fr)); } } .l-stat, .summary .card, .summary .item, .card { position: relative; overflow: hidden; background: linear-gradient(180deg, rgba(15, 27, 46, 0.92), rgba(10, 21, 37, 0.88)); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--glow-line), var(--shadow); backdrop-filter: blur(16px); } .l-stat::before, .summary .card::before, .summary .item::before, .card::before { content: ''; position: absolute; inset: 0 0 auto; height: 2px; background: linear-gradient(90deg, rgba(0, 212, 255, 0.14), rgba(0, 212, 255, 0.96), rgba(124, 58, 237, 0.42)); } .l-stat, .summary .card, .summary .item { min-height: 112px; padding: 18px 18px 16px; } .l-stat:hover, .summary .card:hover, .summary .item:hover, .card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md), var(--glow-primary); } .l-stat.stat-link { cursor: pointer; } .l-stat.stat-link .l { word-break: break-all; } .l-stat .n, .summary .card .num, .summary .item .num { font-family: var(--font-mono); font-size: 28px; font-weight: 800; line-height: 1.15; letter-spacing: -0.04em; color: #fff; } .l-stat .l, .summary .card .label, .summary .item .label { margin-top: 8px; font-size: 12px; color: var(--text3); font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; } .l-tw, .table-wrap, .result-section, .section { margin: 18px 24px 0; background: var(--bg-panel); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--glow-line), var(--shadow); backdrop-filter: blur(16px); overflow: auto; } table, .tbl, .mat-table { width: 100%; border-collapse: collapse; font-size: 13px; } th, .tbl th, .mat-table th { position: sticky; top: 0; z-index: 1; padding: 11px 12px; text-align: left; white-space: nowrap; font-size: 11px; font-weight: 800; letter-spacing: 0.06em; color: rgba(219, 234, 254, 0.78); background: rgba(6, 14, 26, 0.92); border-bottom: 1px solid rgba(125, 211, 252, 0.16); } td, .tbl td, .mat-table td { padding: 10px 12px; border-top: 1px solid rgba(148, 163, 184, 0.10); color: var(--text2); white-space: nowrap; } tr:hover td, .tbl tr:hover td, .mat-table tr:hover td { background: rgba(56, 189, 248, 0.08); } tr:nth-child(even) td, .tbl tr:nth-child(even) td, .mat-table tr:nth-child(even) td { background: rgba(255, 255, 255, 0.02); } tr.shortage td, tr.highlight-short td { background: var(--red-light) !important; } tr.highlight-warn td { background: var(--orange-light) !important; } .badge, .badge-pill { display: inline-flex; align-items: center; gap: 4px; min-height: 24px; padding: 0 10px; border-radius: 999px; font-size: 11px; font-weight: 800; letter-spacing: 0.03em; border: 1px solid transparent; } .badge-green, .badge-ok, .badge-success { background: var(--green-light); color: #7bf3c4; border-color: rgba(52, 211, 153, 0.26); } .badge-red, .badge-fail, .badge-danger { background: var(--red-light); color: #ffb4b4; border-color: rgba(248, 113, 113, 0.28); } .badge-warn, .badge-yellow { background: var(--orange-light); color: #ffd36c; border-color: rgba(251, 191, 36, 0.28); } .badge-blue, .badge-info { background: var(--accent-light); color: #8ee5ff; border-color: rgba(56, 189, 248, 0.28); } .badge-purple { background: var(--purple-light); color: #d8c7ff; border-color: rgba(167, 139, 250, 0.28); } .filter-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; margin-left: 6px; padding: 0 6px; border-radius: 999px; background: rgba(56, 189, 248, 0.18); color: #8fe4ff; font-size: 10px; font-weight: 800; } .th-filter { position: relative; cursor: pointer; user-select: none; } .th-filter:hover { background: rgba(56, 189, 248, 0.10) !important; } .th-filter.active { color: #9be7ff; } .th-filter .filter-icon { display: inline-block; margin-left: 4px; opacity: 0.34; } .th-filter:hover .filter-icon, .th-filter.active .filter-icon { opacity: 0.9; } .filter-popup, #colPicker { background: rgba(10, 19, 34, 0.94); border: 1px solid rgba(125, 211, 252, 0.18); border-radius: var(--radius); box-shadow: var(--shadow-lg); backdrop-filter: blur(18px); color: var(--text); } #colPicker { position: fixed; top: 92px; right: 24px; z-index: 40; min-width: 190px; max-height: 78vh; overflow-y: auto; padding: 14px 14px 10px; } #colPicker h3 { margin: 0 0 10px; font-size: 13px; font-weight: 800; } .col-picker-item { display: block; padding: 4px 0; font-size: 12px; color: var(--text2); } .filter-popup { position: fixed; z-index: 1000; min-width: 180px; max-height: 260px; overflow-y: auto; padding: 12px 14px; } .filter-popup input { width: 100%; min-height: 36px; margin-bottom: 8px; padding: 0 12px; border: 1px solid rgba(148, 163, 184, 0.18); border-radius: 10px; background: rgba(255, 255, 255, 0.05); color: var(--text); } .filter-popup .filter-option { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 10px; font-size: 12px; color: var(--text2); } .filter-popup .filter-option:hover { background: rgba(56, 189, 248, 0.08); } .filter-popup .filter-actions { display: flex; gap: 6px; margin-top: 8px; padding-top: 8px; border-top: 1px solid rgba(148, 163, 184, 0.12); } .filter-popup .filter-actions button { flex: 1; min-height: 32px; padding: 0 10px; } .l-pager, .pagination { margin: 18px 24px 24px; padding: 14px 16px; display: flex; justify-content: center; align-items: center; gap: 12px; background: var(--bg-panel); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); backdrop-filter: blur(16px); } .l-pager span, .pagination span { font-size: 12px; color: var(--text3); font-weight: 700; } .loading, .no-data, .nodata, .placeholder { padding: 72px 20px; text-align: center; color: var(--text3); } .loading::before { content: ''; display: block; width: 34px; height: 34px; margin: 0 auto 14px; border: 3px solid rgba(148, 163, 184, 0.18); border-top-color: var(--accent); border-radius: 50%; animation: lingshu-spin 0.8s linear infinite; } @keyframes lingshu-spin { to { transform: rotate(360deg); } } .module-card, .doc-card, .search-section, .metric-card, .section, .result-card { background: linear-gradient(180deg, rgba(14, 27, 47, 0.92), rgba(9, 18, 33, 0.86)); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); } .module-card-header, .doc-card-header, .card-header { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 14px 18px; color: var(--text); background: rgba(255, 255, 255, 0.04) !important; border-bottom: 1px solid rgba(148, 163, 184, 0.12); } .module-card-body, .doc-card-body, .card-body, .section { padding: 16px 18px; } .module-card-header .code, .doc-card-header .doc-no, .metric-card .value, .num-red, .num-blue, .num-green, .num-amber { font-family: var(--font-mono); } .info-row .item .lbl, .mode-header .info-field .lbl { color: var(--text3); } .info-row .item .val, .mode-header .info-field .val, .module-card-header .name { color: var(--text); font-weight: 700; } .toast { position: fixed; left: 50%; bottom: 28px; z-index: 9999; transform: translateX(-50%) translateY(80px); padding: 11px 22px; border-radius: 999px; background: rgba(7, 17, 31, 0.92); border: 1px solid rgba(56, 189, 248, 0.18); color: #fff; font-size: 13px; font-weight: 700; box-shadow: var(--shadow-lg); opacity: 0; transition: all 0.28s cubic-bezier(0.22, 1, 0.36, 1); backdrop-filter: blur(18px); } .toast.show { opacity: 1; transform: translateX(-50%) translateY(0); } .toast.error { border-color: rgba(248, 113, 113, 0.24); background: rgba(48, 15, 19, 0.94); } .dashboard-page { margin: 0 0 18px; } .dashboard-hero { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin: 0 0 12px; padding: 14px 18px; border: 1px solid rgba(0, 212, 255, 0.16); border-radius: calc(var(--radius) + 2px); background: linear-gradient(135deg, rgba(14, 25, 44, 0.94), rgba(7, 16, 29, 0.88)), radial-gradient(circle at top right, rgba(0, 212, 255, 0.14), transparent 32%); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), var(--shadow-md), 0 0 24px rgba(0, 212, 255, 0.08); backdrop-filter: blur(18px); } .dashboard-hero-copy h1 { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 24px; font-weight: 800; letter-spacing: 0; line-height: 1.2; text-shadow: 0 0 26px rgba(0, 212, 255, 0.16); } .dashboard-hero-icon { font-size: 26px; filter: drop-shadow(0 0 14px rgba(0, 212, 255, 0.22)); } .dashboard-hero-subtitle { margin-top: 4px; font-size: 12px; color: rgba(221, 237, 255, 0.82); font-weight: 700; } .dashboard-pill { display: inline-flex; align-items: center; min-height: 24px; padding: 0 10px; border-radius: 999px; background: linear-gradient(135deg, rgba(0, 212, 255, 0.12), rgba(124, 58, 237, 0.12)); border: 1px solid rgba(0, 212, 255, 0.18); color: #dff7ff; font-size: 12px; font-weight: 800; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 0 16px rgba(0, 212, 255, 0.06); } .dashboard-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .dashboard-actions .btn-sm { min-width: 116px; } .dashboard-kpi-grid, .dashboard-metric-grid, .dashboard-dual-grid { display: grid; gap: 10px; margin-bottom: 12px; } .dashboard-kpi-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); } .dashboard-metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .dashboard-dual-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 16px; } .dashboard-kpi-card { position: relative; overflow: hidden; min-height: 78px; padding: 12px 14px; border-radius: var(--radius); color: #fff; box-shadow: var(--shadow-md); border: 1px solid rgba(255, 255, 255, 0.10); isolation: isolate; } .dashboard-kpi-card::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255, 255, 255, 0.10), transparent 42%); opacity: 0.62; pointer-events: none; } .dashboard-kpi-card::after { content: ''; position: absolute; inset: auto -20% -46% auto; width: 140px; height: 140px; border-radius: 50%; background: radial-gradient(circle, rgba(255, 255, 255, 0.18), transparent 68%); opacity: 0.24; pointer-events: none; } .dashboard-kpi-icon { position: absolute; top: -12px; right: -6px; font-size: 44px; opacity: 0.12; pointer-events: none; } .dashboard-kpi-value { display: flex; align-items: flex-end; gap: 6px; font-family: var(--font-mono); font-size: 22px; font-weight: 700; letter-spacing: 0; line-height: 1.1; } .dashboard-kpi-suffix { margin-bottom: 3px; font-size: 16px; font-weight: 700; opacity: 0.72; } .dashboard-kpi-label { display: flex; align-items: center; gap: 6px; margin-top: 3px; font-size: 11px; font-weight: 700; opacity: 0.84; } .dashboard-metric-card { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid rgba(0, 212, 255, 0.14); background: linear-gradient(180deg, rgba(18, 32, 55, 0.94), rgba(10, 20, 35, 0.90)), radial-gradient(circle at top right, rgba(0, 212, 255, 0.10), transparent 28%); } .dashboard-ring { flex-shrink: 0; display: flex; align-items: center; justify-content: center; width: 64px; height: 64px; } .dashboard-metric-value { font-family: var(--font-mono); font-size: 20px; font-weight: 700; line-height: 1.15; text-shadow: 0 0 18px rgba(0, 212, 255, 0.12); } .dashboard-metric-label { display: flex; align-items: center; gap: 4px; margin-top: 4px; font-size: 12px; color: rgba(221, 237, 255, 0.82); font-weight: 700; } .dashboard-panel { padding: 16px; border: 1px solid rgba(0, 212, 255, 0.14); background: linear-gradient(180deg, rgba(15, 27, 46, 0.94), rgba(8, 18, 31, 0.90)), radial-gradient(circle at top right, rgba(0, 212, 255, 0.08), transparent 30%); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), var(--shadow), 0 0 18px rgba(0, 212, 255, 0.05); } .dashboard-panel-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; } .dashboard-panel-title { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 900; color: var(--text); text-shadow: 0 0 16px rgba(0, 212, 255, 0.10); } .dashboard-panel-meta { font-size: 12px; color: var(--text3); font-weight: 600; } .dashboard-panel-link { color: var(--accent); font-size: 12px; font-weight: 700; text-decoration: none; } .dashboard-panel-link:hover { color: #fff; } .dashboard-stage-list, .dashboard-top-list { display: flex; flex-direction: column; gap: 8px; } .dashboard-stage-row, .dashboard-top-item { display: flex; align-items: center; gap: 8px; } .dashboard-stage-row { min-height: 24px; } .dashboard-stage-icon { width: 22px; flex-shrink: 0; text-align: center; font-size: 16px; } .dashboard-stage-label { width: 56px; flex-shrink: 0; color: var(--text2); font-size: 12px; font-weight: 700; } .dashboard-stage-track { position: relative; flex: 1; height: 22px; overflow: hidden; border-radius: 999px; background: rgba(255, 255, 255, 0.05); box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.28), inset 0 0 0 1px rgba(125, 211, 252, 0.08); } .dashboard-stage-fill { height: 100%; border-radius: inherit; transition: width 0.6s ease; } .dashboard-stage-count { width: 44px; flex-shrink: 0; color: var(--text); text-align: right; font-family: var(--font-mono); font-size: 13px; font-weight: 800; } .dashboard-stage-pct { width: 40px; flex-shrink: 0; color: var(--text3); text-align: right; font-size: 11px; font-weight: 700; } .dashboard-top-item { justify-content: space-between; padding: 10px 12px; border-radius: 12px; border: 1px solid rgba(125, 211, 252, 0.10); background: rgba(255, 255, 255, 0.04); transition: transform var(--transition), background var(--transition), border-color var(--transition), box-shadow var(--transition); } .dashboard-top-item:hover { transform: translateY(-1px); background: rgba(56, 189, 248, 0.08); border-color: rgba(125, 211, 252, 0.22); box-shadow: 0 16px 28px rgba(0, 8, 20, 0.20); } .dashboard-top-left, .dashboard-top-right { display: flex; align-items: center; gap: 8px; } .dashboard-top-link { color: var(--accent); text-decoration: none; font-size: 13px; font-weight: 700; } .dashboard-top-link:hover { color: #fff; } .dashboard-top-hint, .dashboard-top-unit { color: var(--text3); font-size: 12px; font-weight: 600; } .dashboard-top-value { font-family: var(--font-mono); font-size: 14px; font-weight: 800; } .dashboard-quick-card { padding: 14px 16px; } .dashboard-quick-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; } .dashboard-quick-item { display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 12px 14px; border: 1px solid rgba(0, 212, 255, 0.10); border-radius: 12px; background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.025)); color: var(--text); text-align: left; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03); transition: transform var(--transition), background var(--transition), border-color var(--transition), box-shadow var(--transition); } .dashboard-quick-item:hover { transform: translateY(-2px); background: linear-gradient(180deg, rgba(0, 212, 255, 0.10), rgba(124, 58, 237, 0.08)); border-color: rgba(0, 212, 255, 0.22); box-shadow: 0 18px 32px rgba(0, 8, 20, 0.22), 0 0 18px rgba(0, 212, 255, 0.08); } .dashboard-quick-icon { flex-shrink: 0; font-size: 20px; } .dashboard-quick-label { font-size: 13px; font-weight: 700; color: var(--text); } .dashboard-empty { padding: 18px 0; color: var(--text3); text-align: center; font-size: 13px; font-weight: 600; } .view-page { display: flex; flex-direction: column; gap: 12px; } .view-hero { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 12px 16px; border: 1px solid rgba(125, 211, 252, 0.14); border-radius: calc(var(--radius) + 2px); background: linear-gradient(135deg, rgba(14, 25, 44, 0.94), rgba(7, 16, 29, 0.88)), radial-gradient(circle at top right, rgba(56, 189, 248, 0.14), transparent 34%); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), var(--shadow); backdrop-filter: blur(18px); } .view-hero-copy { min-width: 0; } .view-kicker { display: inline-flex; align-items: center; min-height: 20px; padding: 0 8px; border-radius: 999px; background: linear-gradient(135deg, rgba(56, 189, 248, 0.14), rgba(167, 139, 250, 0.10)); border: 1px solid rgba(125, 211, 252, 0.24); color: #dff7ff; font-size: 11px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05); } .view-title-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 6px; } .view-title { display: flex; align-items: center; gap: 10px; margin: 0; color: var(--text); font-size: 22px; font-weight: 800; letter-spacing: 0; line-height: 1.2; text-shadow: 0 0 24px rgba(56, 189, 248, 0.18); } .view-title-icon { font-size: 22px; filter: drop-shadow(0 0 14px rgba(56, 189, 248, 0.22)); } .view-pill { display: inline-flex; align-items: center; min-height: 22px; padding: 0 10px; border-radius: 999px; background: linear-gradient(135deg, rgba(56, 189, 248, 0.14), rgba(167, 139, 250, 0.10)); border: 1px solid rgba(125, 211, 252, 0.22); color: #dff7ff; font-size: 12px; font-weight: 800; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05); } .view-subtitle { margin-top: 4px; color: rgba(221, 237, 255, 0.82); font-size: 12px; font-weight: 700; } .view-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .view-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; } .view-stat { position: relative; min-height: 72px; padding: 12px 14px 10px; overflow: hidden; background: linear-gradient(180deg, rgba(18, 32, 55, 0.96), rgba(9, 19, 33, 0.90)), radial-gradient(circle at top right, rgba(56, 189, 248, 0.14), transparent 36%); border: 1px solid rgba(125, 211, 252, 0.16); border-radius: var(--radius); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), var(--shadow); backdrop-filter: blur(16px); } .view-stat::before { content: ''; position: absolute; inset: 0 0 auto; height: 3px; background: linear-gradient(90deg, rgba(34, 211, 238, 0.2), rgba(56, 189, 248, 0.96), rgba(167, 139, 250, 0.4)); } .view-stat::after { content: ''; position: absolute; right: -18px; top: -18px; width: 86px; height: 86px; border-radius: 50%; background: radial-gradient(circle, rgba(56, 189, 248, 0.18), transparent 70%); pointer-events: none; } .view-stat:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); } .view-stat-value { font-family: var(--font-mono); font-size: 22px; font-weight: 700; line-height: 1.15; letter-spacing: 0; color: #fff; text-shadow: 0 0 18px rgba(56, 189, 248, 0.14); } .view-stat-label { margin-top: 4px; font-size: 11px; color: rgba(221, 237, 255, 0.78); font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; } .view-toolbar { margin: 0; padding: 12px 14px; background: linear-gradient(180deg, rgba(15, 27, 46, 0.92), rgba(10, 21, 37, 0.88)), radial-gradient(circle at top right, rgba(56, 189, 248, 0.10), transparent 28%); border: 1px solid rgba(125, 211, 252, 0.14); border-radius: var(--radius); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), var(--shadow); backdrop-filter: blur(16px); } .view-toolbar input, .view-toolbar select { min-height: 40px; } .view-toolbar .info-text { margin-left: auto; } .view-table { margin: 0; } .view-chart-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; } .view-chart-card { padding: 18px; } .view-chart-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; } .view-chart-title { color: var(--text); font-size: 14px; font-weight: 800; } .view-chart-meta { color: var(--text3); font-size: 12px; font-weight: 600; } .view-chart-canvas { display: flex; align-items: center; justify-content: center; min-height: 210px; } .view-gantt-legend { display: flex; gap: 16px; margin-top: 12px; align-items: center; flex-wrap: wrap; color: var(--text2); font-size: 12px; } .view-gantt-legend span { display: inline-flex; align-items: center; gap: 6px; } .view-table th.sortable { cursor: pointer; } .view-empty-cell { padding: 28px !important; color: var(--text2) !important; text-align: center; } .view-cell-accent { color: var(--accent); font-weight: 700; } @media (max-width: 960px) { .l-header, .l-toolbar, .toolbar, .l-stats, .summary, .l-tw, .table-wrap, .result-section, .section, .l-pager, .pagination { margin-left: 14px; margin-right: 14px; } .l-header { padding: 14px 16px; } .l-toolbar, .toolbar, .l-pager, .pagination { padding: 12px; } .l-stats, .summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dashboard-hero, .dashboard-dual-grid { grid-template-columns: 1fr; } .dashboard-hero { flex-direction: column; align-items: stretch; } .dashboard-kpi-grid, .dashboard-metric-grid { grid-template-columns: 1fr; } .view-hero { flex-direction: column; align-items: stretch; } .view-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (min-width: 1200px) { .view-stats { grid-template-columns: repeat(6, minmax(0, 1fr)); } } @media (max-width: 640px) { .l-stats, .summary { grid-template-columns: 1fr; } .l-header .home-link, .l-header .nav-link, .l-header a[href="/"], .l-header a[href^="javascript:history.back"] { min-height: 34px; padding: 0 12px; } .l-header h1 { font-size: 18px; } .dashboard-hero-copy h1 { align-items: flex-start; flex-wrap: wrap; font-size: 20px; } .dashboard-actions { width: 100%; } .dashboard-actions .btn-sm { flex: 1 1 100%; } .dashboard-quick-grid { grid-template-columns: 1fr; } .view-title { font-size: 20px; } .view-stats { grid-template-columns: 1fr; } .view-actions { width: 100%; } .view-actions .btn-sm { flex: 1 1 100%; } } .lingshu-shell { position: relative; } .lingshu-shell .top-utility-bar { position: fixed; top: 14px; right: 18px; z-index: 130; padding: 0; border: 0; background: transparent; backdrop-filter: none; } .lingshu-shell .top-utility-back { min-height: 36px; padding: 0 14px; border-radius: 999px; border: 1px solid rgba(125, 211, 252, 0.24); background: rgba(8, 16, 30, 0.78); color: var(--text2); box-shadow: 0 12px 30px rgba(0, 8, 20, 0.26); backdrop-filter: blur(16px); } .lingshu-shell .top-utility-back:hover { color: #fff; border-color: rgba(125, 211, 252, 0.38); background: rgba(56, 189, 248, 0.14); } .lingshu-shell .sidebar { width: 264px; background: radial-gradient(circle at 50% 0%, rgba(56, 189, 248, 0.16), transparent 28%), radial-gradient(circle at 100% 0%, rgba(167, 139, 250, 0.10), transparent 24%), linear-gradient(180deg, #091423 0%, #0b182a 46%, #0d1d31 100%); border-right: 1px solid rgba(125, 211, 252, 0.12); box-shadow: 28px 0 56px rgba(0, 8, 20, 0.38); backdrop-filter: blur(18px); } .lingshu-shell .sidebar.collapsed { width: 70px; } .lingshu-shell .sidebar .logo { gap: 14px; padding: 24px 22px 18px; border-bottom: 1px solid rgba(125, 211, 252, 0.12); } .lingshu-shell .logo-mark { flex-shrink: 0; } .lingshu-shell .sidebar .logo span { letter-spacing: 0.08em; text-transform: uppercase; background: linear-gradient(135deg, #d9f7ff, #67e8f9 40%, #a78bfa 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .lingshu-shell .sidebar .logo small { color: rgba(178, 204, 231, 0.40); letter-spacing: 0.12em; } .lingshu-shell .sidebar-toggle-btn { left: calc(264px - 7px); width: 16px; height: 56px; border-radius: 0 8px 8px 0; background: rgba(9, 20, 35, 0.94); color: rgba(206, 224, 244, 0.72); border: 1px solid rgba(125, 211, 252, 0.16); border-left: none; box-shadow: 10px 10px 28px rgba(0, 8, 20, 0.28); } .lingshu-shell .sidebar-toggle-btn:hover { background: rgba(14, 26, 44, 0.98); color: #fff; } .lingshu-shell .sidebar.collapsed ~ .sidebar-toggle-btn { left: calc(70px - 7px); } .lingshu-shell .nav-item-home { margin: 12px 14px 8px; padding: 12px 16px; border-radius: 14px; } .lingshu-shell .nav-group-title { padding: 10px 22px 8px; color: rgba(183, 203, 225, 0.78); } .lingshu-shell .nav-sub .nav-item { margin: 2px 10px; padding: 8px 16px 8px 48px; color: rgba(172, 194, 219, 0.84); } .lingshu-shell .nav-item-home:hover, .lingshu-shell .nav-group-title:hover, .lingshu-shell .nav-sub .nav-item:hover { background: rgba(255, 255, 255, 0.06); } .lingshu-shell .nav-item-home.active, .lingshu-shell .nav-sub .nav-item.active { color: #fff; background: linear-gradient(135deg, rgba(56, 189, 248, 0.18), rgba(167, 139, 250, 0.14)); border: 1px solid rgba(125, 211, 252, 0.12); box-shadow: inset 2px 0 0 var(--accent), 0 14px 32px rgba(14, 165, 233, 0.16); } .lingshu-shell .nav-group-title.is-link { color: rgba(183, 203, 225, 0.88); } .lingshu-shell .nav-item-divider { display: block; min-height: 0; margin: 6px 18px; padding: 0; border-top: 1px solid rgba(125, 211, 252, 0.14); background: none; cursor: default; pointer-events: none; } .lingshu-shell .sidebar-footer { border-top: 1px solid rgba(255, 255, 255, 0.06); } .lingshu-shell .sidebar-version { color: rgba(178, 204, 231, 0.44); } .lingshu-shell .sidebar-footer-meta { font-size: 12px; color: var(--text2); } .lingshu-shell .content { margin-left: 264px; max-width: calc(100vw - 264px); padding: 28px 28px 40px; background: transparent; } .lingshu-shell .content > * { animation: contentFadeIn 0.32s ease; } .lingshu-shell .sidebar.collapsed ~ .content { margin-left: 70px; max-width: calc(100vw - 70px); } @media (max-width: 960px) { .lingshu-shell .top-utility-bar { top: 10px; right: 12px; } .lingshu-shell .content { padding: 18px 16px 24px; } } body, body :where( a, button, input, select, textarea, label, span, small, p, div, th, td, li, strong, b, em, .nav-item, .nav-item-home, .nav-group-title, .btn-sm, .badge, .sc .n, .sc .l, .view-stat-value, .view-stat-label, .dashboard-kpi-value, .dashboard-kpi-label, .dashboard-metric-value, .dashboard-metric-label, .dashboard-panel-title, .dashboard-panel-meta, .dashboard-top-value, .dashboard-stage-count, .dashboard-stage-pct, .login-logo, .login-logo-sub, .login-status-value, .login-status-label, .login-field span, .login-tab, .login-action ) { font-weight: 400 !important; } h1, h2, .s, .page-title, .view-title, .issue-title, .delivery-board-title, .dashboard-hero-copy h1, .l-header h1, .login-copy h1, .login-panel h2 { font-weight: 400 !important; } .theme-toggle-btn { width: 100%; margin-top: 10px; padding: 9px 12px; border: 1px solid rgba(0, 212, 255, 0.22); border-radius: 999px; color: rgba(220, 247, 255, 0.94); background: linear-gradient(135deg, rgba(0, 212, 255, 0.12), rgba(124, 58, 237, 0.10)); box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.04), 0 14px 32px rgba(0, 0, 0, 0.22); cursor: pointer; transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease, background 0.2s ease; } .theme-toggle-btn:hover { border-color: rgba(0, 212, 255, 0.48); box-shadow: 0 0 24px rgba(0, 212, 255, 0.18); transform: translateY(-1px); } .login-theme-toggle { position: fixed; top: 20px; right: 24px; z-index: 20; width: auto; margin: 0; padding: 10px 18px; } html.theme-light { --bg: #edf4fb; --bg2: rgba(255, 255, 255, 0.92); --bg3: rgba(15, 23, 42, 0.035); --bg-hover: rgba(0, 143, 179, 0.08); --surface: rgba(255, 255, 255, 0.88); --surface-2: rgba(244, 249, 255, 0.92); --border: rgba(15, 23, 42, 0.10); --border-light: rgba(0, 143, 179, 0.26); --text: #0f172a; --text2: #475569; --text3: #64748b; --accent: #008fb3; --accent-hover: #00a8cc; --accent-dim: #006f8f; --accent-light: rgba(0, 143, 179, 0.12); --accent-subtle: rgba(0, 143, 179, 0.07); --accent-glow: rgba(0, 143, 179, 0.18); --purple: #6d28d9; --purple-light: rgba(109, 40, 217, 0.10); --sidebar-bg: rgba(255, 255, 255, 0.94); --sidebar-text: #64748b; --sidebar-text-active: #0f172a; --sidebar-hover: rgba(0, 143, 179, 0.08); --sidebar-border: rgba(15, 23, 42, 0.08); --sidebar-accent: #008fb3; --shadow: 0 10px 28px rgba(15, 23, 42, 0.10); --shadow-md: 0 16px 42px rgba(15, 23, 42, 0.12); --shadow-lg: 0 22px 60px rgba(15, 23, 42, 0.16); --shadow-glow: 0 0 0 rgba(0, 0, 0, 0); } html.theme-light body, html.theme-light body.login-shell { color: var(--text) !important; background: radial-gradient(circle at 14% 18%, rgba(0, 212, 255, 0.22), transparent 32%), radial-gradient(circle at 86% 8%, rgba(124, 58, 237, 0.14), transparent 28%), linear-gradient(135deg, #f8fbff 0%, #edf4fb 46%, #e8f0fb 100%) !important; } html.theme-light body::before { opacity: 0.35 !important; } html.theme-light .sidebar, html.theme-light .lingshu-shell .sidebar { background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(236, 246, 255, 0.94)) !important; border-right: 1px solid rgba(15, 23, 42, 0.08) !important; box-shadow: 18px 0 36px rgba(15, 23, 42, 0.08) !important; } html.theme-light .content, html.theme-light .lingshu-shell .content { background: linear-gradient(135deg, rgba(248, 251, 255, 0.52), rgba(237, 244, 251, 0.28)) !important; } html.theme-light .sidebar .logo span { background: linear-gradient(135deg, #0f172a, #008fb3 48%, #6d28d9) !important; -webkit-background-clip: text !important; background-clip: text !important; } html.theme-light .card, html.theme-light .sc, html.theme-light .tw, html.theme-light .filter-popup, html.theme-light .dashboard-hero, html.theme-light .dashboard-kpi-card, html.theme-light .dashboard-metric-card, html.theme-light .dashboard-panel, html.theme-light .dashboard-quick-item, html.theme-light .login-brand, html.theme-light .login-panel, html.theme-light .login-status-card, html.theme-light .login-tabs, html.theme-light .login-field input, html.theme-light .login-wecom, html.theme-light .empty, html.theme-light .loading, html.theme-light .modal-content { color: var(--text) !important; background: rgba(255, 255, 255, 0.86) !important; border-color: rgba(15, 23, 42, 0.10) !important; box-shadow: 0 18px 48px rgba(15, 23, 42, 0.11) !important; } html.theme-light .login-brand, html.theme-light .dashboard-hero { background: linear-gradient(135deg, rgba(255, 255, 255, 0.90), rgba(241, 248, 255, 0.82)), radial-gradient(circle at top right, rgba(0, 212, 255, 0.22), transparent 38%) !important; } html.theme-light .login-copy h1, html.theme-light .login-panel h2, html.theme-light .dashboard-hero-copy h1, html.theme-light .view-title, html.theme-light .s, html.theme-light h1, html.theme-light h2 { color: #0f172a !important; text-shadow: none !important; } html.theme-light .login-copy p, html.theme-light .login-panel-subtitle, html.theme-light .login-status-label, html.theme-light .dashboard-panel-meta, html.theme-light .dashboard-metric-label, html.theme-light .dashboard-kpi-label, html.theme-light .sidebar-footer-meta, html.theme-light .sidebar-version, html.theme-light .l, html.theme-light .muted { color: var(--text2) !important; } html.theme-light .login-logo, html.theme-light .login-status-value, html.theme-light .dashboard-kpi-value, html.theme-light .dashboard-metric-value, html.theme-light .view-stat-value, html.theme-light table th, html.theme-light table td { color: var(--text) !important; } html.theme-light table th { background: rgba(0, 143, 179, 0.07) !important; } html.theme-light .maintenance-table thead th { background: #eef4f9 !important; } html.theme-light tr:nth-child(even) td { background: rgba(15, 23, 42, 0.025) !important; } html.theme-light tr:hover td { background: rgba(0, 143, 179, 0.08) !important; } html.theme-light .theme-toggle-btn { color: #0f172a !important; border-color: rgba(0, 143, 179, 0.20) !important; background: linear-gradient(135deg, rgba(255, 255, 255, 0.84), rgba(232, 246, 255, 0.78)) !important; box-shadow: 0 12px 30px rgba(15, 23, 42, 0.10) !important; } html.theme-light .login-action, html.theme-light .btn, html.theme-light .btn-primary { color: #ffffff !important; background: linear-gradient(135deg, #008fb3, #6d28d9) !important; box-shadow: 0 16px 36px rgba(0, 143, 179, 0.22) !important; } html.theme-light .view-page { color: #102033 !important; } html.theme-light .view-hero { background: linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(237, 248, 255, 0.88)), radial-gradient(circle at 8% 0%, rgba(0, 212, 255, 0.18), transparent 34%), radial-gradient(circle at 92% 0%, rgba(124, 58, 237, 0.10), transparent 32%) !important; border: 1px solid rgba(15, 23, 42, 0.08) !important; box-shadow: 0 18px 46px rgba(15, 23, 42, 0.10) !important; } html.theme-light .view-kicker, html.theme-light .view-pill, html.theme-light .dashboard-pill { color: #006f8f !important; background: linear-gradient(135deg, rgba(0, 143, 179, 0.12), rgba(109, 40, 217, 0.08)) !important; border-color: rgba(0, 143, 179, 0.22) !important; box-shadow: none !important; } html.theme-light .view-title, html.theme-light .view-title span, html.theme-light .view-chart-title, html.theme-light .dashboard-panel-title, html.theme-light .dashboard-panel-title span { color: #102033 !important; text-shadow: none !important; } html.theme-light .view-title-icon, html.theme-light .dashboard-hero-icon { filter: none !important; } html.theme-light .view-subtitle, html.theme-light .view-chart-meta, html.theme-light .view-gantt-legend, html.theme-light .info-text, html.theme-light .dashboard-hero-subtitle, html.theme-light .dashboard-top-hint, html.theme-light .dashboard-top-unit { color: #52657a !important; } html.theme-light .view-stat { background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(242, 249, 255, 0.88)), radial-gradient(circle at top right, rgba(0, 212, 255, 0.14), transparent 36%) !important; border: 1px solid rgba(15, 23, 42, 0.08) !important; box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08) !important; } html.theme-light .view-stat::before { background: linear-gradient(90deg, rgba(0, 143, 179, 0.08), rgba(0, 168, 204, 0.62), rgba(109, 40, 217, 0.22)) !important; } html.theme-light .view-stat::after { background: radial-gradient(circle, rgba(0, 168, 204, 0.12), transparent 70%) !important; } html.theme-light .view-stat-value, html.theme-light .view-stat-value[style] { color: #102033 !important; text-shadow: none !important; } html.theme-light .view-stat-label { color: #5d7086 !important; } html.theme-light .view-toolbar { background: linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(240, 248, 255, 0.86)), radial-gradient(circle at top right, rgba(0, 212, 255, 0.10), transparent 30%) !important; border: 1px solid rgba(15, 23, 42, 0.08) !important; box-shadow: 0 14px 36px rgba(15, 23, 42, 0.08) !important; } html.theme-light input, html.theme-light select, html.theme-light textarea, html.theme-light .view-toolbar input, html.theme-light .view-toolbar select, html.theme-light .filter-popup input { color: #102033 !important; background: rgba(255, 255, 255, 0.90) !important; border-color: rgba(15, 23, 42, 0.14) !important; } html.theme-light input::placeholder, html.theme-light textarea::placeholder { color: #8190a3 !important; } html.theme-light .btn-sm { color: #315067 !important; background: rgba(255, 255, 255, 0.86) !important; border-color: rgba(15, 23, 42, 0.12) !important; box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06) !important; } html.theme-light .btn-sm:hover { color: #006f8f !important; background: rgba(232, 247, 255, 0.92) !important; border-color: rgba(0, 143, 179, 0.28) !important; } html.theme-light .btn-sm.primary { color: #ffffff !important; background: linear-gradient(135deg, #00a8cc, #6d28d9) !important; border-color: transparent !important; box-shadow: 0 12px 28px rgba(0, 143, 179, 0.20) !important; } html.theme-light .tw, html.theme-light .table-wrap, html.theme-light .view-table, html.theme-light .mat-table { background: rgba(255, 255, 255, 0.88) !important; border-color: rgba(15, 23, 42, 0.08) !important; box-shadow: 0 16px 42px rgba(15, 23, 42, 0.08) !important; } html.theme-light table, html.theme-light .tbl, html.theme-light .mat-table { color: #102033 !important; background: rgba(255, 255, 255, 0.82) !important; } html.theme-light table th, html.theme-light .tbl th, html.theme-light .mat-table th { color: #33465c !important; background: linear-gradient(180deg, #f5fbff, #eaf5fb) !important; border-color: rgba(15, 23, 42, 0.07) !important; } html.theme-light .delivery-table th { background: #eef7fc !important; } html.theme-light table td, html.theme-light .tbl td, html.theme-light .mat-table td { color: #12243a !important; border-color: rgba(15, 23, 42, 0.055) !important; } html.theme-light tr:nth-child(even) td, html.theme-light .tbl tr:nth-child(even) td, html.theme-light .mat-table tr:nth-child(even) td { background: rgba(239, 247, 252, 0.55) !important; } html.theme-light tr:hover td, html.theme-light .tbl tr:hover td, html.theme-light .mat-table tr:hover td { background: rgba(224, 245, 255, 0.82) !important; } html.theme-light tr.highlight-short td, html.theme-light tr.highlight-short:nth-child(even) td, html.theme-light .tbl tr.highlight-short td, html.theme-light .mat-table tr.highlight-short td { background: rgba(255, 243, 246, 0.82) !important; } html.theme-light tr.highlight-short:hover td, html.theme-light .tbl tr.highlight-short:hover td, html.theme-light .mat-table tr.highlight-short:hover td { background: rgba(255, 232, 238, 0.90) !important; } html.theme-light .badge { border-color: rgba(15, 23, 42, 0.08) !important; } html.theme-light .badge-green { color: #087047 !important; background: rgba(16, 185, 129, 0.12) !important; } html.theme-light .badge-warn, html.theme-light .badge-yellow { color: #9a5a00 !important; background: rgba(245, 158, 11, 0.14) !important; } html.theme-light .badge-red { color: #b4234a !important; background: rgba(255, 51, 102, 0.10) !important; } html.theme-light .badge-blue, html.theme-light .filter-badge { color: #006f8f !important; background: rgba(0, 143, 179, 0.10) !important; } html.theme-light .pg button, html.theme-light .pg .i { color: #315067 !important; background: rgba(255, 255, 255, 0.86) !important; border-color: rgba(15, 23, 42, 0.12) !important; } html.theme-light a, html.theme-light .view-cell-accent, html.theme-light .dashboard-panel-link, html.theme-light .dashboard-top-link { color: #007da0 !important; } .lingshu-shell .logo-mark { width: 42px; height: 42px; padding: 3px; border-radius: 14px; background: radial-gradient(circle at 50% 18%, rgba(125, 211, 252, 0.24), transparent 52%), linear-gradient(145deg, rgba(8, 18, 34, 0.96), rgba(12, 22, 42, 0.72)); border: 1px solid rgba(125, 211, 252, 0.18); box-shadow: 0 0 28px rgba(0, 212, 255, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.08); } .lingshu-shell .sidebar .logo span { font-size: 22px; font-weight: 900; letter-spacing: 0.12em; } .lingshu-shell .nav-group { margin: 4px 10px; } .lingshu-shell .nav-item-home, .lingshu-shell .nav-group-title { position: relative; min-height: 42px; margin: 4px 4px; padding: 11px 12px; border: 1px solid transparent; border-radius: 12px; font-size: 14px; font-weight: 850; letter-spacing: 0; color: rgba(218, 234, 250, 0.88); } .lingshu-shell .nav-group-title > span:first-child, .lingshu-shell .nav-item-home { display: flex; align-items: center; gap: 10px; } .lingshu-shell .nav-group-title::before, .lingshu-shell .nav-item-home::before { content: ''; position: absolute; left: -1px; top: 10px; bottom: 10px; width: 3px; border-radius: 999px; background: linear-gradient(180deg, rgba(0, 212, 255, 0), rgba(0, 212, 255, 0.86), rgba(139, 92, 246, 0)); opacity: 0.34; } .lingshu-shell .nav-group-title:hover, .lingshu-shell .nav-group-title.active, .lingshu-shell .nav-group-title.is-link:hover, .lingshu-shell .nav-item-home:hover, .lingshu-shell .nav-item-home.active { color: #ffffff; border-color: rgba(125, 211, 252, 0.16); background: linear-gradient(135deg, rgba(0, 212, 255, 0.13), rgba(139, 92, 246, 0.10)), rgba(255, 255, 255, 0.035); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 12px 28px rgba(0, 8, 20, 0.18); } .lingshu-shell .nav-group-title.active::before, .lingshu-shell .nav-group-title:hover::before, .lingshu-shell .nav-item-home.active::before, .lingshu-shell .nav-item-home:hover::before { opacity: 1; } .lingshu-shell .nav-arrow { font-size: 9px; color: rgba(125, 211, 252, 0.48); } .lingshu-shell .nav-sub .nav-item { margin: 2px 8px 2px 18px; padding: 8px 12px 8px 30px; border-radius: 10px; font-size: 12px; } .lingshu-shell .sidebar.collapsed .logo { padding: 17px 12px; } .lingshu-shell .sidebar.collapsed .logo-mark { width: 42px; height: 42px; } .lingshu-shell .sidebar.collapsed .nav-group { margin: 5px 8px; } .lingshu-shell .sidebar.collapsed .nav-item-home, .lingshu-shell .sidebar.collapsed .nav-group-title { justify-content: center; padding: 10px 0; margin: 4px 0; min-height: 42px; font-size: 18px; } html.theme-light { --bg: #f3f8fd; --bg2: rgba(255, 255, 255, 0.92); --bg3: rgba(18, 40, 68, 0.045); --bg-hover: rgba(0, 128, 164, 0.08); --surface: rgba(255, 255, 255, 0.88); --surface-2: rgba(247, 251, 255, 0.94); --surface-elevated: rgba(255, 255, 255, 0.96); --border: rgba(26, 52, 82, 0.11); --border-strong: rgba(0, 128, 164, 0.24); --text: #102033; --text-primary: #081827; --text2: #41566e; --text3: #6d7f93; --accent: #0087ad; --accent-2: #00b8dc; --accent-3: #006c91; --accent-light: rgba(0, 135, 173, 0.12); --accent-subtle: rgba(0, 135, 173, 0.07); --accent-glow: rgba(0, 135, 173, 0.18); --purple: #5b4bd8; --purple-light: rgba(91, 75, 216, 0.10); --green: #07865a; --green-light: rgba(7, 134, 90, 0.12); --red: #c72d55; --red-light: rgba(199, 45, 85, 0.10); --orange: #af6800; --orange-light: rgba(175, 104, 0, 0.12); --sidebar-bg: rgba(246, 251, 255, 0.96); --sidebar-text: #50637a; --sidebar-text-active: #0b1d2e; --sidebar-hover: rgba(0, 135, 173, 0.08); --sidebar-border: rgba(26, 52, 82, 0.10); --sidebar-accent: #0087ad; --shadow: 0 14px 38px rgba(18, 40, 68, 0.10); --shadow-md: 0 18px 52px rgba(18, 40, 68, 0.13); --shadow-lg: 0 24px 68px rgba(18, 40, 68, 0.17); } html.theme-light body, html.theme-light body.login-shell { background: radial-gradient(circle at 16% 10%, rgba(0, 184, 220, 0.20), transparent 30%), radial-gradient(circle at 86% 8%, rgba(91, 75, 216, 0.13), transparent 26%), linear-gradient(145deg, #f9fcff 0%, #f1f7fc 42%, #e9f2f8 100%) !important; } html.theme-light body::before { opacity: 0.42 !important; background-image: linear-gradient(rgba(16, 32, 51, 0.032) 1px, transparent 1px), linear-gradient(90deg, rgba(16, 32, 51, 0.032) 1px, transparent 1px) !important; } html.theme-light .lingshu-shell .sidebar, html.theme-light .sidebar { background: radial-gradient(circle at 50% 0%, rgba(0, 184, 220, 0.16), transparent 30%), linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(239, 247, 253, 0.96)) !important; border-right: 1px solid rgba(26, 52, 82, 0.10) !important; box-shadow: 20px 0 46px rgba(18, 40, 68, 0.09) !important; } html.theme-light .lingshu-shell .logo-mark { background: radial-gradient(circle at 50% 18%, rgba(0, 184, 220, 0.22), transparent 54%), linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(232, 243, 251, 0.86)) !important; border-color: rgba(0, 135, 173, 0.24) !important; box-shadow: 0 14px 30px rgba(0, 135, 173, 0.13), inset 0 1px 0 rgba(255, 255, 255, 0.72) !important; } html.theme-light .lingshu-shell .sidebar .logo { border-bottom-color: rgba(0, 135, 173, 0.14) !important; } html.theme-light .lingshu-shell .sidebar .logo span { background: linear-gradient(135deg, #081827, #0087ad 48%, #5b4bd8) !important; -webkit-background-clip: text !important; background-clip: text !important; } html.theme-light .lingshu-shell .sidebar .logo small, html.theme-light .lingshu-shell .sidebar-footer-meta, html.theme-light .lingshu-shell .sidebar-version { color: #6d7f93 !important; } html.theme-light .lingshu-shell .nav-item-home, html.theme-light .lingshu-shell .nav-group-title { color: #40546c !important; } html.theme-light .lingshu-shell .nav-group-title:hover, html.theme-light .lingshu-shell .nav-group-title.active, html.theme-light .lingshu-shell .nav-group-title.is-link:hover, html.theme-light .lingshu-shell .nav-item-home:hover, html.theme-light .lingshu-shell .nav-item-home.active { color: #0b1d2e !important; border-color: rgba(0, 135, 173, 0.18) !important; background: linear-gradient(135deg, rgba(0, 184, 220, 0.12), rgba(91, 75, 216, 0.08)), rgba(255, 255, 255, 0.74) !important; box-shadow: 0 10px 24px rgba(18, 40, 68, 0.08) !important; } html.theme-light .lingshu-shell .nav-sub .nav-item { color: #5b6e83 !important; } html.theme-light .lingshu-shell .nav-sub .nav-item:hover, html.theme-light .lingshu-shell .nav-sub .nav-item.active { color: #0b1d2e !important; background: rgba(0, 135, 173, 0.08) !important; } html.theme-light .card, html.theme-light .sc, html.theme-light .tw, html.theme-light .filter-popup, html.theme-light .dashboard-hero, html.theme-light .dashboard-kpi-card, html.theme-light .dashboard-metric-card, html.theme-light .dashboard-panel, html.theme-light .dashboard-quick-item, html.theme-light .view-hero, html.theme-light .view-stat, html.theme-light .view-toolbar, html.theme-light .modal-content { color: #102033 !important; background: linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(247, 251, 255, 0.88)) !important; border-color: rgba(26, 52, 82, 0.10) !important; box-shadow: 0 16px 44px rgba(18, 40, 68, 0.10) !important; } html.theme-light .s, html.theme-light .view-title, html.theme-light .dashboard-panel-title, html.theme-light h1, html.theme-light h2 { color: #081827 !important; text-shadow: none !important; } html.theme-light .view-subtitle, html.theme-light .dashboard-hero-subtitle, html.theme-light .info-text, html.theme-light .l, html.theme-light .muted { color: #52677f !important; } html.theme-light table th, html.theme-light .tbl th, html.theme-light .mat-table th { color: #294158 !important; background: linear-gradient(180deg, #f7fbff, #e8f3fa) !important; border-color: rgba(26, 52, 82, 0.08) !important; } html.theme-light table td, html.theme-light .tbl td, html.theme-light .mat-table td { color: #12243a !important; border-color: rgba(26, 52, 82, 0.06) !important; } html.theme-light tr:nth-child(even) td, html.theme-light .tbl tr:nth-child(even) td, html.theme-light .mat-table tr:nth-child(even) td { background: rgba(237, 246, 252, 0.58) !important; } html.theme-light tr:hover td, html.theme-light .tbl tr:hover td, html.theme-light .mat-table tr:hover td { background: rgba(218, 242, 251, 0.80) !important; } html.theme-light input, html.theme-light select, html.theme-light textarea, html.theme-light .filter-popup input { color: #102033 !important; background: rgba(255, 255, 255, 0.92) !important; border-color: rgba(26, 52, 82, 0.14) !important; } html.theme-light .btn-sm, html.theme-light .theme-toggle-btn { color: #2f4b63 !important; background: rgba(255, 255, 255, 0.86) !important; border-color: rgba(26, 52, 82, 0.12) !important; box-shadow: 0 10px 22px rgba(18, 40, 68, 0.07) !important; } html.theme-light .btn-sm:hover, html.theme-light .theme-toggle-btn:hover { color: #006c91 !important; background: rgba(229, 247, 253, 0.94) !important; border-color: rgba(0, 135, 173, 0.28) !important; } html.theme-light .btn-sm.primary { color: #ffffff !important; background: linear-gradient(135deg, #0087ad, #5b4bd8) !important; border-color: transparent !important; } html.theme-light .dashboard-overview-card, html.theme-light .dashboard-material-card { position: relative; overflow: hidden; color: #12263a !important; background: linear-gradient(180deg, #ffffff 0%, #f4f8fb 100%) !important; border-color: rgba(45, 77, 104, 0.14) !important; box-shadow: inset 0 3px 0 var(--overview-accent, var(--group-accent, #38bdf8)), 0 10px 24px rgba(29, 55, 78, 0.08) !important; } html.theme-light .dashboard-material-card { box-shadow: inset 0 3px 0 var(--group-accent, #38bdf8), 0 10px 24px rgba(29, 55, 78, 0.08) !important; } html.theme-light .dashboard-overview-metric { background: rgba(236, 243, 248, 0.88) !important; border-color: rgba(52, 83, 108, 0.10) !important; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92) !important; } html.theme-light .dashboard-material-track { background: #dfe8ef !important; box-shadow: inset 0 1px 2px rgba(28, 52, 72, 0.10) !important; } html.theme-light .dashboard-material-fill { background: linear-gradient( 90deg, var(--group-accent, #38bdf8), color-mix(in srgb, var(--group-accent, #38bdf8) 48%, white) ) !important; } html.theme-light .lingshu-shell .sidebar, html.theme-light .sidebar { background: linear-gradient(180deg, rgba(248, 252, 255, 0.98), rgba(236, 246, 253, 0.96)) !important; border-right: 1px solid rgba(42, 70, 96, 0.14) !important; } html.theme-light .lingshu-shell .logo-mark { border-radius: 12px !important; background: linear-gradient(145deg, #ffffff, #e8f5fb) !important; border-color: rgba(0, 119, 160, 0.26) !important; box-shadow: 0 10px 26px rgba(22, 74, 108, 0.12) !important; } html.theme-light .lingshu-shell .sidebar .logo span { color: #0b2538 !important; background: none !important; -webkit-text-fill-color: #0b2538 !important; text-shadow: none !important; } html.theme-light .lingshu-shell .sidebar .logo small { color: #6f8397 !important; } html.theme-light .lingshu-shell .nav-item-home, html.theme-light .lingshu-shell .nav-group-title { color: #334b63 !important; background: transparent !important; } html.theme-light .lingshu-shell .nav-item-home.active, html.theme-light .lingshu-shell .nav-item-home:hover, html.theme-light .lingshu-shell .nav-group-title.active, html.theme-light .lingshu-shell .nav-group-title:hover, html.theme-light .lingshu-shell .nav-group-title.is-link:hover { color: #092033 !important; background: linear-gradient(135deg, rgba(207, 239, 249, 0.92), rgba(231, 239, 255, 0.74)) !important; border-color: rgba(0, 119, 160, 0.20) !important; box-shadow: inset 3px 0 0 #00a0c6, 0 10px 22px rgba(27, 61, 88, 0.08) !important; } html.theme-light .content, html.theme-light .lingshu-shell .content { background: linear-gradient(180deg, rgba(247, 251, 254, 0.62), rgba(238, 246, 251, 0.42)) !important; } html.theme-light .delivery-board-header, html.theme-light .delivery-filter-panel, html.theme-light .delivery-stage-card, html.theme-light .issue-slice, html.theme-light .issue-metric, html.theme-light .issue-compact-card, html.theme-light .capacity-chart-card, html.theme-light .capacity-card, html.theme-light .capacity-view-panel { color: #102033 !important; background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(244, 250, 254, 0.90)) !important; border: 1px solid rgba(42, 70, 96, 0.12) !important; box-shadow: 0 16px 40px rgba(23, 54, 78, 0.10) !important; } html.theme-light .delivery-board-header { padding: 14px 18px !important; border-radius: 10px 10px 0 0 !important; } html.theme-light .delivery-filter-panel { border-top: 0 !important; border-radius: 0 0 10px 10px !important; } html.theme-light .delivery-board-title, html.theme-light .delivery-stage-value, html.theme-light .capacity-card-title, html.theme-light .capacity-chart-title, html.theme-light .issue-title { color: #0b2538 !important; text-shadow: none !important; } html.theme-light .delivery-board-subtitle, html.theme-light .delivery-board-updated, html.theme-light .delivery-filter-label, html.theme-light .delivery-stage-label, html.theme-light .delivery-stage-note, html.theme-light .capacity-card-text, html.theme-light .issue-sub, html.theme-light .issue-metric-label, html.theme-light .issue-compact-title { color: #5f7285 !important; } html.theme-light .delivery-chip, html.theme-light .capacity-view-tab, html.theme-light .delivery-tab, html.theme-light .issue-group-chip { color: #344f67 !important; background: rgba(255, 255, 255, 0.86) !important; border-color: rgba(42, 70, 96, 0.14) !important; box-shadow: none !important; } html.theme-light .delivery-chip.active, html.theme-light .capacity-view-tab.active, html.theme-light .delivery-tab.active { color: #005f82 !important; background: linear-gradient(135deg, rgba(213, 244, 252, 0.96), rgba(231, 238, 255, 0.88)) !important; border-color: rgba(0, 128, 164, 0.34) !important; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.62) !important; } html.theme-light .delivery-chip:hover:not(.static), html.theme-light .capacity-view-tab:hover:not(.active), html.theme-light .issue-group-chip:hover { color: #005f82 !important; background: rgba(224, 246, 252, 0.90) !important; border-color: rgba(0, 128, 164, 0.28) !important; } html.theme-light .delivery-chip-count { color: #728398 !important; } html.theme-light .delivery-search, html.theme-light .delivery-date-input { color: #102033 !important; background: rgba(255, 255, 255, 0.94) !important; border: 1px solid rgba(42, 70, 96, 0.18) !important; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9) !important; color-scheme: light !important; } html.theme-light .delivery-search:focus, html.theme-light .delivery-date-input:focus { border-color: rgba(0, 128, 164, 0.42) !important; box-shadow: 0 0 0 3px rgba(0, 128, 164, 0.10) !important; } html.theme-light .delivery-stage-card::before { opacity: 0.82 !important; } html.theme-light .tw, html.theme-light .table-scroll-top, html.theme-light .l-tw-scroll { background: rgba(255, 255, 255, 0.92) !important; border-color: rgba(42, 70, 96, 0.12) !important; box-shadow: 0 16px 36px rgba(23, 54, 78, 0.08) !important; } html.theme-light th, html.theme-light table th, html.theme-light .mat-table th { color: #3c556c !important; background: #eef6fb !important; } html.theme-light td, html.theme-light table td, html.theme-light .mat-table td { color: #12283d !important; background: rgba(255, 255, 255, 0.96) !important; } html.theme-light tr:nth-child(even) td, html.theme-light .mat-table tr:nth-child(even) td { background: #f5f9fc !important; } html.theme-light tr:hover td, html.theme-light .mat-table tr:hover td { background: #e5f4fa !important; } html.theme-light { --text: #12263a; --text2: #425a70; --text3: #6c7f91; --accent: #0088ad; --accent-hover: #006f92; --accent-light: rgba(0, 136, 173, 0.12); --border: rgba(43, 75, 101, 0.13); --surface: rgba(255, 255, 255, 0.90); --bg3: rgba(218, 235, 246, 0.42); } html.theme-light body { background: radial-gradient(circle at 18% 10%, rgba(0, 151, 190, 0.12), transparent 30%), radial-gradient(circle at 88% 4%, rgba(86, 98, 214, 0.08), transparent 28%), linear-gradient(135deg, #f7fbfe 0%, #edf5fa 52%, #e8f0f6 100%) !important; } html.theme-light .lingshu-shell .sidebar { background: linear-gradient(180deg, #f9fdff 0%, #edf6fb 54%, #e7f0f6 100%) !important; box-shadow: 14px 0 34px rgba(28, 58, 82, 0.10) !important; } html.theme-light .lingshu-shell .sidebar .logo { gap: 12px !important; padding: 22px 20px 18px !important; background: linear-gradient(180deg, rgba(222, 246, 252, 0.56), rgba(255, 255, 255, 0.14)) !important; } html.theme-light .lingshu-shell .logo-mark { width: 40px !important; height: 40px !important; padding: 4px !important; border-radius: 11px !important; background: #f7fcff !important; border: 1px solid rgba(0, 126, 164, 0.24) !important; box-shadow: 0 8px 20px rgba(0, 126, 164, 0.12), inset 0 1px 0 #fff !important; } html.theme-light .lingshu-shell .sidebar .logo span { font-size: 22px !important; font-weight: 900 !important; letter-spacing: 0.14em !important; color: #0d2b3f !important; } html.theme-light .lingshu-shell .sidebar .logo small { font-size: 9px !important; letter-spacing: 0.16em !important; color: #7790a4 !important; } html.theme-light .lingshu-shell .nav-group { margin: 5px 12px !important; } html.theme-light .lingshu-shell .nav-item-home, html.theme-light .lingshu-shell .nav-group-title { min-height: 40px !important; border-radius: 10px !important; color: #40586e !important; } html.theme-light .lingshu-shell .nav-sub .nav-item { color: #496178 !important; background: transparent !important; } html.theme-light .lingshu-shell .nav-sub .nav-item.active { background: linear-gradient(90deg, rgba(205, 238, 247, 0.95), rgba(231, 241, 247, 0.78)) !important; border: 1px solid rgba(0, 136, 173, 0.16) !important; color: #0d2b3f !important; box-shadow: inset 3px 0 0 #00a5c8 !important; } html.theme-light .lingshu-shell .sidebar-toggle-btn { background: #e8f2f7 !important; color: #496178 !important; border-color: rgba(117, 151, 171, 0.34) !important; box-shadow: 0 6px 16px rgba(80, 111, 132, 0.14) !important; } html.theme-light .lingshu-shell .sidebar-toggle-btn:hover { background: #d9eaf2 !important; color: #1f4862 !important; border-color: rgba(0, 136, 173, 0.34) !important; box-shadow: 0 8px 18px rgba(80, 111, 132, 0.2) !important; } html.theme-light .theme-toggle-btn { color: #15324a !important; background: #ffffff !important; border-color: rgba(0, 136, 173, 0.28) !important; box-shadow: 0 10px 20px rgba(28, 58, 82, 0.08) !important; } html.theme-light .content, html.theme-light .lingshu-shell .content { padding: 28px 28px 36px !important; } html.theme-light .delivery-board { margin-bottom: 18px !important; } html.theme-light .delivery-board-header, html.theme-light .delivery-filter-panel { background: rgba(255, 255, 255, 0.92) !important; border-color: rgba(43, 75, 101, 0.13) !important; box-shadow: 0 14px 38px rgba(28, 58, 82, 0.10) !important; } html.theme-light .delivery-board-header { min-height: 82px !important; align-items: center !important; border-bottom-color: rgba(43, 75, 101, 0.08) !important; } html.theme-light .delivery-board-title { font-size: 22px !important; font-weight: 900 !important; color: #102b40 !important; } html.theme-light .delivery-board-subtitle, html.theme-light .delivery-board-updated { color: #5e7387 !important; } html.theme-light .delivery-filter-row { gap: 8px !important; margin: 9px 0 !important; } html.theme-light .delivery-filter-label { color: #365268 !important; font-weight: 800 !important; } html.theme-light .delivery-chip { min-height: 36px !important; border-radius: 7px !important; background: #ffffff !important; color: #344f67 !important; border-color: rgba(43, 75, 101, 0.14) !important; } html.theme-light .delivery-chip.active { color: #006b8b !important; background: #dff4fa !important; border-color: rgba(0, 136, 173, 0.38) !important; } html.theme-light .delivery-date-input, html.theme-light .delivery-search { height: 38px !important; border-radius: 8px !important; } html.theme-light .btn-sm { height: 38px !important; border-radius: 999px !important; } html.theme-light .btn-sm.primary { background: linear-gradient(135deg, #0088ad, #3867d8) !important; } html.theme-light .delivery-stage-grid { gap: 12px !important; margin-top: 18px !important; } html.theme-light .delivery-stage-card { min-height: 112px !important; padding: 16px 18px !important; border-radius: 8px !important; background: #ffffff !important; } html.theme-light .delivery-stage-value { font-size: 28px !important; font-weight: 900 !important; color: var(--stage-color, #0088ad) !important; } html.theme-light .tw.view-table { border-radius: 10px !important; background: #ffffff !important; border: 1px solid rgba(43, 75, 101, 0.12) !important; } html.theme-light .tw.view-table th { height: 40px !important; background: #eaf4fa !important; color: #365268 !important; } html.theme-light .tw.view-table td { height: 44px !important; } .l-ft { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 10px; } .ft-btn { padding: 4px 10px; border-radius: 6px; border: 1px solid var(--border); background: var(--bg3); color: var(--text2); cursor: pointer; font-size: 11px; font-weight: 600; white-space: nowrap; } .ft-btn.on { background: var(--accent-light); color: var(--accent); border-color: var(--accent); } .ft-btn:hover { opacity: 0.8; } .l-tw-scroll { overflow-x: auto; border-radius: var(--radius); border: 1px solid var(--border); box-shadow: var(--shadow); } .l-tw-scroll table { width: max-content; min-width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; font-size: 13px; } .l-tw-scroll th { position: sticky; top: 0; z-index: 1; background: var(--bg3); padding: 8px 14px; text-align: left; font-weight: 700; color: var(--text2); white-space: nowrap; border-bottom: 1px solid var(--border); box-sizing: border-box; background-clip: padding-box; } .l-tw-scroll td { padding: 8px 14px; border-bottom: 1px solid var(--border); white-space: nowrap; max-width: 12em; overflow: hidden; text-overflow: ellipsis; box-sizing: border-box; background-clip: padding-box; } .l-tw-scroll td > .cell-ellipsis { max-width: 12em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: inline-block; vertical-align: middle; cursor: default; } .detail-cell-tooltip { position: fixed; z-index: 10000; display: none; max-width: 420px; padding: 4px 8px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--bg2); color: var(--text); box-shadow: var(--shadow-md); white-space: normal; word-break: break-all; pointer-events: none; } .l-tw-scroll tr:hover { background: var(--bg-hover); } .table-scroll-shell { display: flex; flex-direction: column; gap: 0; } .table-scroll-top { overflow-x: auto; overflow-y: hidden; height: 18px; border: 1px solid var(--border); border-bottom: 0; border-radius: var(--radius) var(--radius) 0 0; background: rgba(255,255,255,0.03); box-shadow: var(--shadow); } .table-scroll-top-inner { height: 1px; } .table-scroll-top::-webkit-scrollbar, .l-tw-scroll::-webkit-scrollbar { height: 12px; } .l-tw-scroll::-webkit-scrollbar { height: 0; } .l-tw-scroll th { position: sticky; top: 0; z-index: 3; background: #111827 !important; background-clip: padding-box; box-shadow: inset 0 -1px 0 var(--border); } html.theme-light .l-tw-scroll th { background: #eef6fb !important; } .table-scroll-top::-webkit-scrollbar-thumb, .l-tw-scroll::-webkit-scrollbar-thumb { background: rgba(56, 189, 248, 0.35); border-radius: 999px; } .table-scroll-top::-webkit-scrollbar-track, .l-tw-scroll::-webkit-scrollbar-track { background: rgba(255,255,255,0.05); } .table-scroll-shell .l-tw-scroll { border-top-left-radius: 0; border-top-right-radius: 0; } .nav-link[data-page] { padding: 6px 12px; border-radius: 6px; border: 1px solid var(--border); color: var(--text2); text-decoration: none; font-size: 12px; font-weight: 600; } .nav-link[data-page]:hover { background: var(--bg-hover); color: var(--text); } .ft-popup { position: fixed; z-index: 99999; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px; min-width: 260px; box-shadow: var(--shadow-lg); max-height: 360px; overflow-y: auto; display: grid; grid-template-columns: 1fr; gap: 6px; } .ft-popup-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 4px; padding-bottom: 8px; border-bottom: 1px solid rgba(148, 163, 184, 0.12); color: var(--text); font-size: 12px; font-weight: 800; } .ft-popup-tip { color: var(--text3); font-size: 11px; font-weight: 600; } .ft-opt { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 12px; color: var(--text2); cursor: pointer; padding: 8px 10px; border-radius: 8px; white-space: nowrap; border: 1px solid rgba(148, 163, 184, 0.08); background: rgba(255,255,255,0.02); } .ft-opt:hover { background: var(--bg-hover); color: var(--text); } .ft-opt-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; } .ft-opt input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--accent); flex: 0 0 auto; } .l-ft { position: relative; } .maint-edit-cell { position: relative; padding-right: 34px !important; background: rgba(0, 212, 255, 0.035) !important; box-shadow: none; border-left: 0 !important; transition: background var(--transition), box-shadow var(--transition), color var(--transition); } .maint-edit-cell:hover { background: rgba(0, 212, 255, 0.075) !important; box-shadow: none; } .maint-edit-content { display: block; align-items: center; max-width: 100%; vertical-align: middle; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .maint-edit-content .cell-ellipsis, .maint-edit-content .cell-ellipsis-wide { max-width: 100%; } .maint-edit-btn { position: absolute; right: 5px; top: 50%; transform: translateY(-50%); width: 22px; height: 20px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: none; border-radius: 4px; background: var(--accent-light); color: var(--accent); cursor: pointer; font-size: 12px; line-height: 1; font-family: inherit; text-align: center; white-space: nowrap; opacity: 0.72; z-index: 2; } .maint-edit-btn:hover { background: rgba(0, 212, 255, 0.18); color: var(--accent-hover); opacity: 1; } .maint-edit-btn span { display: block; line-height: 1; } html.theme-light .maint-edit-cell { background: rgba(213, 244, 252, 0.44) !important; box-shadow: none; } html.theme-light .maint-edit-cell:hover { background: rgba(198, 238, 248, 0.74) !important; box-shadow: none; } html.theme-light .maint-edit-btn { color: #006b8b; background: rgba(0, 136, 173, 0.08); } html.theme-light .maint-edit-btn:hover { color: #005473; background: rgba(0, 136, 173, 0.14); } 