*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--navy: #032d4e;--navy-dark: #021a2e;--navy-light: #e8eef4;--red: var(--navy);--red-dark: var(--navy-dark);--red-light: var(--navy-light);--surface: #f5f4f2;--border: #e3e1dd;--white: #ffffff;--gray-400: #9a9690;--gray-600: #6b6762;--gray-800: #2e2c2a;--black: #1a1917;--gray-50: var(--surface);--gray-100: #edece9;--gray-200: var(--border);--ok: #16a34a;--ok-bg: #f0fdf4;--warn: #d97706;--warn-bg: #fffbeb;--err: #dc2626;--err-bg: #fef2f2;--info: #2563eb;--info-bg: #eef6ff;--font-body: "DM Sans", -apple-system, "Helvetica Neue", sans-serif;--font-display: var(--font-body);--fs-12: 12px;--fs-14: 14px;--fs-16: 16px;--fs-20: 20px;--fs-28: 28px;--fs-36: 36px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-6: 24px;--sp-8: 32px;--card-pad: 24px;--radius: 12px;--shadow: 0 1px 3px rgba(26, 25, 23, .07)}html,body{height:100%;background:var(--surface);font-family:var(--font-body);color:var(--black);font-size:var(--fs-14)}#root{height:100%;display:flex;flex-direction:column}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.num,.kpi-value,table{font-variant-numeric:tabular-nums}.card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--card-pad)}table.tbl{width:100%;border-collapse:collapse;font-size:13px}table.tbl th{text-align:left;padding:10px 14px;font-size:var(--fs-12);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gray-400);border-bottom:1px solid var(--border)}table.tbl td{padding:0 14px;height:46px;border-bottom:1px solid var(--gray-100)}table.tbl tbody tr:hover{background:#fbfaf9}table.tbl .num,table.tbl th.num,table.tbl td.num{text-align:right}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes modalIn{0%{opacity:0;transform:scale(.96) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}@keyframes skeletonPulse{0%{background-position:200% 0}to{background-position:-200% 0}}textarea:focus,input:focus{outline:none;border-color:var(--navy)!important}
