/** * Copyright since 2025 Mifos Initiative * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ :host { --dc-navy: #0b1e3d; --dc-blue: #1d4ed8; --dc-blue-l: #eff6ff; --dc-teal: #0e7e6b; --dc-teal-l: #e0f4f0; --dc-green: #15803d; --dc-green-l: #dcfce7; --dc-amber: #d97706; --dc-amber-l: #fef3c7; --dc-red: #c0392b; --dc-red-l: #fdecea; --dc-purple: #6d28d9; --dc-purple-l: #ede9fe; --dc-g50: #f8fafc; --dc-g100: #f1f5f9; --dc-g200: #e2e8f0; --dc-g300: #cbd5e1; --dc-g500: #64748b; --dc-g700: #334155; --dc-g900: #0f172a; display: block; font-family: 'DM Sans', system-ui, -apple-system, sans-serif; background: var(--dc-g50); color: var(--dc-g900); font-size: 14px; line-height: 1.5; } .dic-root { padding: 18px 22px; max-width: 1500px; margin: 0 auto; } /* HEADER */ .dic-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; } .dic-head-left { display: flex; align-items: center; gap: 14px; } .dic-head-ic { font-size: 28px; color: var(--dc-blue); } .dic-head-t { margin: 0; font-size: 18px; font-weight: 700; color: var(--dc-g900); } .dic-head-s { font-size: 12px; color: var(--dc-g500); } .dic-head-meta { display: flex; gap: 22px; > div { display: flex; flex-direction: column; .dic-meta-l { font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--dc-g500); } .dic-meta-v { font-size: 14px; font-weight: 600; color: var(--dc-g900); } } } /* TABS */ .dic-tabs { display: flex; gap: 4px; background: #fff; border: 1px solid var(--dc-g200); border-radius: 10px; padding: 4px; margin-bottom: 16px; overflow-x: auto; } .dic-tab { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border: none; background: transparent; font-size: 13px; font-weight: 500; color: var(--dc-g500); cursor: pointer; border-radius: 7px; white-space: nowrap; transition: all 0.15s; font-family: inherit; &:hover { color: var(--dc-g900); } &.active { background: var(--dc-blue); color: #fff; box-shadow: 0 2px 6px rgb(29 78 216 / 25%); } } .dic-section { display: flex; flex-direction: column; gap: 16px; } /* KPI CARDS */ .dic-kpis { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; } .dic-kpi { background: #fff; border: 1px solid var(--dc-g200); border-radius: 12px; padding: 14px 16px; display: flex; align-items: center; gap: 12px; box-shadow: 0 1px 3px rgb(0 0 0 / 5%); &:hover { transform: translateY(-2px); box-shadow: 0 4px 14px rgb(0 0 0 / 10%); } } .dic-kpi-ic { width: 42px; height: 42px; border-radius: 11px; display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; } .dic-kpi--blue .dic-kpi-ic { background: var(--dc-blue-l); color: var(--dc-blue); } .dic-kpi--green .dic-kpi-ic { background: var(--dc-green-l); color: var(--dc-green); } .dic-kpi--amber .dic-kpi-ic { background: var(--dc-amber-l); color: var(--dc-amber); } .dic-kpi--teal .dic-kpi-ic { background: var(--dc-teal-l); color: var(--dc-teal); } .dic-kpi--red .dic-kpi-ic { background: var(--dc-red-l); color: var(--dc-red); } .dic-kpi-n { font-size: 18px; font-weight: 700; color: var(--dc-g900); line-height: 1.1; } .dic-kpi-l { font-size: 12px; color: var(--dc-g700); font-weight: 500; margin-top: 2px; } .dic-kpi-sub { font-size: 11px; color: var(--dc-g500); margin-top: 1px; } /* COMPLIANCE CARDS */ .dic-compliance { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; } .dc-card { background: #fff; border: 1px solid var(--dc-g200); border-radius: 12px; padding: 14px 18px; box-shadow: 0 1px 3px rgb(0 0 0 / 4%); } .dc-card-h { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: var(--dc-g900); margin-bottom: 8px; } .dc-ok { color: var(--dc-green); } .dc-info { color: var(--dc-blue); } .dc-meta { font-size: 12px; color: var(--dc-g500); margin: 2px 0; strong { color: var(--dc-g900); font-weight: 600; } } .dc-btn { margin-top: 10px; padding: 6px 12px; border: 1px solid var(--dc-blue); background: var(--dc-blue-l); color: var(--dc-blue); border-radius: 8px; font-size: 12px; font-weight: 600; cursor: pointer; font-family: inherit; display: inline-flex; align-items: center; gap: 6px; &:hover { background: var(--dc-blue); color: #fff; } } /* FORM HEADER */ .dic-form-meta { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; flex-wrap: wrap; } .dic-form-title { h3 { margin: 0; font-size: 16px; font-weight: 700; color: var(--dc-g900); } p { margin: 2px 0 0; font-size: 12px; color: var(--dc-g500); } } .dic-action-group { display: flex; gap: 8px; } /* BUTTONS */ .dic-btn { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border: 1px solid var(--dc-g300); background: #fff; border-radius: 8px; font-size: 13px; font-weight: 500; color: var(--dc-g700); cursor: pointer; font-family: inherit; transition: all 0.15s; &:hover { background: var(--dc-g50); border-color: var(--dc-g500); } } .dic-btn-xls { background: #16a34a; border-color: #16a34a; color: #fff; &:hover { background: #15803d; border-color: #15803d; color: #fff; } } .dic-btn-csv { background: #1d4ed8; border-color: #1d4ed8; color: #fff; &:hover { background: #1e40af; border-color: #1e40af; color: #fff; } } .dic-btn-g { align-self: end; } /* INPUTS */ .dic-inp { width: 100%; padding: 8px 12px; border: 1px solid var(--dc-g200); border-radius: 8px; font-size: 13px; background: #fff; font-family: inherit; &:focus { outline: none; border-color: var(--dc-blue); box-shadow: 0 0 0 3px rgb(29 78 216 / 15%); } } /* FILTERS */ .dic-filters { background: #fff; border: 1px solid var(--dc-g200); border-radius: 12px; padding: 14px; display: grid; grid-template-columns: 1fr 1fr 1.4fr auto; gap: 12px; align-items: end; } .dic-filter { display: flex; flex-direction: column; gap: 4px; label { font-size: 11px; font-weight: 600; color: var(--dc-g500); text-transform: uppercase; letter-spacing: 0.05em; } } .dic-filter-check .check-row { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--dc-g700); cursor: pointer; user-select: none; margin-top: 14px; input { width: 16px; height: 16px; accent-color: var(--dc-blue); } } /* TABLE */ .dic-tbl-wrap { background: #fff; border: 1px solid var(--dc-g200); border-radius: 12px; overflow: auto; box-shadow: 0 1px 3px rgb(0 0 0 / 4%); } .dic-tbl-h { background: var(--dc-blue-l); color: var(--dc-blue); padding: 10px 16px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; border-bottom: 1px solid var(--dc-g200); } .dic-tbl { width: 100%; border-collapse: collapse; th { text-align: left; padding: 9px 10px; font-size: 11px; font-weight: 600; color: var(--dc-g500); text-transform: uppercase; letter-spacing: 0.04em; background: var(--dc-g50); border-bottom: 1px solid var(--dc-g200); } th.hd-1, tr.hd-1 th { background: #f0f4ff; color: var(--dc-blue); } td { padding: 9px 10px; border-bottom: 1px solid var(--dc-g100); font-size: 12px; color: var(--dc-g700); } tr:last-child td { border-bottom: none; } tr:hover td { background: var(--dc-g50); } tr.row-total td { background: #f0fdf4; font-weight: 700; color: var(--dc-g900); border-top: 2px solid var(--dc-green); } tr.uninsured td { background: #fff7ed; } tr.uninsured:hover td { background: #ffedd5; } } .dic-summary-tbl { td, th { padding: 11px 14px; font-size: 13px; } } .ta-c { text-align: center; } .ta-r { text-align: right; } .mono { font-family: 'DM Mono', monospace; font-size: 11px; letter-spacing: 0.02em; } .cust-2 { color: var(--dc-g500); font-size: 11px; } .dic-empty { text-align: center; padding: 30px; color: var(--dc-g500); font-style: italic; } /* NOTE */ .dic-note { background: var(--dc-amber-l); border: 1px solid #fed7aa; border-radius: 10px; padding: 12px 16px; display: flex; gap: 10px; font-size: 12px; color: #92400e; line-height: 1.5; fa-icon { font-size: 14px; flex-shrink: 0; margin-top: 2px; } } /* TOAST */ .dic-toast { position: fixed; bottom: 32px; left: 50%; transform: translateX(-50%) translateY(20px); background: var(--dc-navy); color: #fff; padding: 12px 22px; border-radius: 10px; font-size: 13px; font-weight: 500; box-shadow: 0 6px 20px rgb(0 0 0 / 25%); opacity: 0; pointer-events: none; transition: all 0.25s; z-index: 1500; &.show { opacity: 1; transform: translateX(-50%) translateY(0); } } @media (width <= 1100px) { .dic-kpis { grid-template-columns: repeat(3, 1fr); } .dic-compliance { grid-template-columns: 1fr; } .dic-filters { grid-template-columns: 1fr 1fr; } } @media (width <= 720px) { .dic-kpis { grid-template-columns: 1fr 1fr; } }