:root { --ink: #0F1218; --cyan: #00E5FF; --cyan-50: #E8FCFF; --white: #FFFFFF; --gray-500: #5B6573; --gray-100: #F2F4F7; --green: #22C55E; --yellow: #EAB308; --red: #EF4444; --green-bg: #DCFCE7; --yellow-bg: #FEF9C3; --red-bg: #FEE2E2; } * { box-sizing: border-box; margin: 0; padding: 0; } body { font: 15px/1.6 -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, system-ui, sans-serif; color: var(--ink); background: var(--gray-100); min-height: 100vh; } .container { max-width: 1200px; margin: 0 auto; padding: 0 24px; } /* Header */ .header { background: var(--ink); color: var(--white); padding: 16px 0; position: sticky; top: 0; z-index: 100; } .header-inner { display: flex; align-items: center; gap: 32px; } .logo { font-size: 20px; font-weight: 800; white-space: nowrap; } .nav { display: flex; gap: 8px; } .nav-link { color: #9aa3b2; text-decoration: none; padding: 8px 16px; border-radius: 8px; font-weight: 500; transition: all .2s; } .nav-link:hover, .nav-link.active { color: var(--white); background: rgba(255,255,255,.1); } .badge { margin-left: auto; background: var(--cyan); color: var(--ink); padding: 4px 12px; border-radius: 20px; font-weight: 700; font-size: 13px; } /* KPI Grid */ .kpi-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin: 32px 0; } .kpi-card { background: var(--white); border-radius: 16px; padding: 24px; display: flex; gap: 16px; align-items: flex-start; border: 2px solid transparent; transition: border-color .2s; } .kpi-card:hover { border-color: var(--cyan); } .kpi-card.danger { border-color: var(--red-bg); } .kpi-icon { font-size: 32px; } .kpi-value { font-size: 32px; font-weight: 800; line-height: 1.1; } .kpi-label { color: var(--gray-500); font-size: 14px; margin-top: 4px; } .kpi-trend { font-size: 13px; margin-top: 8px; font-weight: 500; } .kpi-trend.up { color: var(--green); } .kpi-trend.down { color: var(--red); } /* Charts */ .charts-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 32px; } .chart-card { background: var(--white); border-radius: 16px; padding: 24px; } .chart-card h3 { font-size: 17px; font-weight: 700; margin-bottom: 16px; } /* Sections */ .section { margin-bottom: 40px; } .section h2 { font-size: 28px; font-weight: 700; margin-bottom: 20px; } /* Table */ .table-wrap { background: var(--white); border-radius: 16px; overflow: hidden; } .table { width: 100%; border-collapse: collapse; } .table th { text-align: left; padding: 14px 20px; font-size: 13px; font-weight: 600; color: var(--gray-500); text-transform: uppercase; letter-spacing: .5px; background: var(--gray-100); } .table td { padding: 14px 20px; border-top: 1px solid var(--gray-100); font-size: 14px; } .table tr:hover td { background: var(--cyan-50); } /* Tags */ .tag { display: inline-block; padding: 4px 12px; border-radius: 20px; font-size: 13px; font-weight: 600; } .tag.green { background: var(--green-bg); color: #15803D; } .tag.yellow { background: var(--yellow-bg); color: #A16207; } .tag.red { background: var(--red-bg); color: #DC2626; } /* Progress Bar */ .progress-bar { width: 100%; height: 8px; background: var(--gray-100); border-radius: 4px; overflow: hidden; } .progress-bar .fill { height: 100%; background: var(--green); border-radius: 4px; transition: width .6s ease; } .progress-bar .fill.warn { background: var(--yellow); } .progress-bar .fill.danger { background: var(--red); } /* AI Recommendation */ .ai-rec { font-style: italic; color: var(--gray-500); max-width: 260px; font-size: 13px; } /* Risk Grid */ .risk-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; } .risk-card { background: var(--white); border-radius: 16px; padding: 24px; display: flex; gap: 16px; border-left: 4px solid var(--red); } .risk-avatar { width: 48px; height: 48px; border-radius: 50%; background: var(--red-bg); color: var(--red); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 18px; flex-shrink: 0; } .risk-name { font-weight: 700; font-size: 16px; } .risk-group { color: var(--gray-500); font-size: 13px; margin-top: 2px; } .risk-reason { margin-top: 8px; font-size: 14px; color: #374151; } .risk-action { margin-top: 10px; font-size: 13px; background: var(--cyan-50); padding: 10px 14px; border-radius: 8px; } /* Footer */ .footer { text-align: center; padding: 32px 0; color: var(--gray-500); font-size: 14px; border-top: 1px solid var(--gray-100); margin-top: 40px; } /* Responsive */ @media (max-width: 900px) { .kpi-grid { grid-template-columns: repeat(2, 1fr); } .charts-row { grid-template-columns: 1fr; } .risk-grid { grid-template-columns: 1fr; } .table-wrap { overflow-x: auto; } } @media (max-width: 600px) { .kpi-grid { grid-template-columns: 1fr; } .header-inner { flex-wrap: wrap; gap: 12px; } .nav { order: 3; width: 100%; } .badge { margin-left: 0; } .section h2 { font-size: 22px; } }