:root{--blue: #1A3A6B;--blue-600: #224a86;--blue-700: #16315a;--blue-50: #EEF3FA;--blue-100: #DCE7F5;--green: #10B981;--green-dark: #047857;--green-50: #ECFDF5;--green-100: #D1FAE5;--red: #EF4444;--red-dark: #B91C1C;--red-50: #FEF2F2;--red-100: #FEE2E2;--amber: #F59E0B;--amber-50: #FFFBEB;--amber-100: #FEF3C7;--amber-dark: #B45309;--violet: #7C3AED;--ink: #0F172A;--ink-soft: #1E293B;--text: #1F2937;--text-soft: #4B5563;--muted: #94A3B8;--muted-light: #CBD5E1;--line: #EAECF2;--line-soft: #F1F5F9;--bg: #F6F7FB;--surface: #FFFFFF;--surface-alt: #FAFBFD;--radius: 16px;--radius-sm: 10px;--radius-xs: 8px;--radius-pill: 999px;--shadow-card: 0 2px 12px rgba(15, 23, 42, .06);--shadow-hover: 0 10px 28px rgba(15, 23, 42, .12);--shadow-soft: 0 1px 3px rgba(15, 23, 42, .05);--ease: cubic-bezier(.4, 0, .2, 1);--t-fast: .15s var(--ease);--t-med: .28s var(--ease);--font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--mono: "SF Mono", "Segoe UI Mono", ui-monospace, "Cascadia Mono", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow-x:hidden}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5;text-rendering:optimizeLegibility}#root{display:flex;min-height:100vh}button,input,select,textarea{font-family:inherit}*{scrollbar-width:thin;scrollbar-color:var(--muted-light) transparent}*::-webkit-scrollbar{width:9px;height:9px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--muted-light);border-radius:999px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:var(--muted);background-clip:padding-box}.scroll-x{scrollbar-gutter:stable}.scroll-x{overflow:auto;max-height:65vh;scroll-behavior:smooth}.tbl-top-fill{background:var(--ink-soft);padding:1px}.scroll-x-noheight{max-height:none!important}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInPlain{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:translate(0)}}@keyframes pulseAlert{0%,to{box-shadow:0 0 #ef444440}50%{box-shadow:0 0 0 8px #ef444400}}@keyframes shimmer{0%{background-position:-480px 0}to{background-position:480px 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes popIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.fade-in{animation:fadeIn .45s var(--ease) both}.fade-in-plain{animation:fadeInPlain .5s var(--ease) both}.slide-in-left{animation:slideInLeft .4s var(--ease) both}.pop-in{animation:popIn .35s var(--ease) both}.stagger>*{animation:fadeIn .45s var(--ease) both}.stagger>*:nth-child(1){animation-delay:.04s}.stagger>*:nth-child(2){animation-delay:.1s}.stagger>*:nth-child(3){animation-delay:.16s}.stagger>*:nth-child(4){animation-delay:.22s}.stagger>*:nth-child(5){animation-delay:.28s}.stagger>*:nth-child(6){animation-delay:.34s}.card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow-card);transition:box-shadow var(--t-med),transform var(--t-med)}.card-hover:hover{box-shadow:var(--shadow-hover);transform:translateY(-3px)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:none;border-radius:var(--radius-xs);cursor:pointer;font-size:13px;font-weight:600;padding:9px 16px;transition:transform var(--t-fast),box-shadow var(--t-fast),background var(--t-fast);white-space:nowrap}.btn:hover{transform:scale(1.02)}.btn:active{transform:scale(.98)}.btn-primary{background:var(--blue);color:#fff;box-shadow:0 2px 8px #1a3a6b40}.btn-primary:hover{background:var(--blue-600)}.btn-danger{background:var(--red);color:#fff;box-shadow:0 2px 8px #ef444440}.btn-danger:hover{background:var(--red-dark)}.btn-ghost{background:var(--surface);color:var(--text-soft);border:1px solid var(--line)}.btn-ghost:hover{background:var(--surface-alt);border-color:var(--muted-light)}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--radius-pill);font-size:11px;font-weight:700;white-space:nowrap}.badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 9px;border-radius:6px;font-size:10px;font-weight:700;white-space:nowrap;letter-spacing:.2px}.tbl{width:100%;border-collapse:collapse;font-size:12px}.tbl thead th{background:var(--ink-soft);color:#aebbd0;font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:10px 12px;text-align:left;white-space:nowrap;position:sticky;top:0;z-index:2}.tbl tbody td{padding:9px 12px;border-top:1px solid var(--line-soft);white-space:nowrap;background:var(--surface)}.tbl tbody tr{transition:background var(--t-fast)}.tbl tbody tr:hover td{background:var(--blue-50)!important}.num{font-family:var(--mono);text-align:right}.scroll-x thead th:last-child{box-shadow:20px 0 0 0 var(--ink-soft)}.scroll-x thead tr{background:var(--ink-soft)}.sk{background:linear-gradient(90deg,#eef1f6 25%,#f7f9fc 37%,#eef1f6 63%);background-size:960px 100%;animation:shimmer 1.4s ease-in-out infinite;border-radius:8px}.spinner{width:34px;height:34px;border:3px solid var(--line);border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}.app-main{padding:24px}.dash-split-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px;align-items:start}@media (max-width: 900px){.dash-split-grid{grid-template-columns:1fr}}@media (max-width: 768px){.app-main{padding:16px}}@media (max-width: 640px){.app-main{padding:12px}.app-header{padding:10px 14px!important}.hide-sm{display:none!important}.wrap-sm{flex-wrap:wrap!important;row-gap:8px}}@media (max-width: 480px){.app-main{padding:10px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
