.dr-card{transition:transform .22s cubic-bezier(.4,0,.2,1),box-shadow .22s cubic-bezier(.4,0,.2,1)}.dr-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #00000014,0 2px 6px #0000000a!important}.dr-kpi-hero{background:linear-gradient(135deg,#0a1628,#0052cc)!important;border:none!important;position:relative;overflow:hidden}.dr-kpi-hero:after{content:"";position:absolute;top:-30%;right:-15%;width:110px;height:110px;border-radius:50%;background:#ffffff0f;pointer-events:none}.dr-kpi-icon{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.dr-kpi-icon--default{background:linear-gradient(135deg,#eff6ff,#dbeafe)}.dr-kpi-icon--hero{background:#ffffff26}.dr-delta-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:20px;font-size:.72rem;font-weight:700;line-height:1}.dr-delta-badge--up{background:#ecfdf5;color:#059669}.dr-delta-badge--down{background:#fef2f2;color:#dc2626}.dr-delta-badge--hero-up{background:#10b98133;color:#6ee7b7}.dr-delta-badge--hero-down{background:#ef444433;color:#fca5a5}.dr-vendor-card{border-left:4px solid var(--vendor-color, #0052cc)!important;transition:transform .22s cubic-bezier(.4,0,.2,1),box-shadow .22s cubic-bezier(.4,0,.2,1)}.dr-vendor-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #00000014!important}.dr-cell-bar{height:3px;border-radius:2px;background:linear-gradient(90deg,#3b82f6,#60a5fa);margin-top:4px;transition:width .5s cubic-bezier(.4,0,.2,1)}.dr-cell-bar--total{background:linear-gradient(90deg,#0052cc,#3b82f6)}.dr-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:20px;background:#f0f9ff;color:#0369a1;font-size:.76rem;font-weight:600;line-height:1.4;border:1px solid #bae6fd;transition:background .15s,transform .15s}.dr-chip:hover{background:#e0f2fe;transform:scale(1.02)}@keyframes dr-fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.dr-stagger{animation:dr-fadeUp .4s cubic-bezier(.4,0,.2,1) both}@keyframes dr-countPulse{0%{opacity:.4;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.dr-number-enter{animation:dr-countPulse .35s cubic-bezier(.4,0,.2,1)}@keyframes dr-shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.dr-skeleton{background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0 37%,#f1f5f9 63%);background-size:800px 100%;animation:dr-shimmer 1.5s ease infinite;border-radius:8px}.dr-skeleton-card{height:76px;border-radius:10px}.dr-skeleton-chart{height:220px;border-radius:10px}.dr-skeleton-vendor{height:140px;border-radius:10px;margin-bottom:.75rem}@keyframes dr-dotPulse{0%,to{r:4;opacity:1}50%{r:7;opacity:.6}}.dr-chart-pulse{animation:dr-dotPulse 2s ease-in-out infinite}.dr-sidebar-item{transition:all .18s cubic-bezier(.4,0,.2,1)!important}.dr-sidebar-item:hover{background:#ffffff0f!important;color:#e2e8f0!important}.dr-btn-export{transition:all .18s ease}.dr-btn-export:hover{border-color:#3b82f6!important;color:#3b82f6!important;background:#3b82f614!important}.dr-btn-export:hover svg{transform:translateY(1px);transition:transform .18s ease}.dr-btn-primary{transition:all .18s ease;position:relative;overflow:hidden}.dr-btn-primary:hover{background:#003d99!important;box-shadow:0 4px 14px #0052cc59}.dr-btn-primary:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.1),transparent);pointer-events:none}@keyframes dr-statusPulse{0%,to{opacity:1}50%{opacity:.4}}.dr-status-dot{animation:dr-statusPulse 2s ease-in-out infinite}.dr-section-label{display:flex;align-items:center;gap:10px;font-size:.72rem;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.75rem}.dr-section-label:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,#e2e8f0,transparent)}.dr-demo-badge{padding:3px 10px;border-radius:20px;font-size:.65rem;font-weight:700;background:#dbeafe;color:#1d4ed8;border:1px solid #93c5fd;letter-spacing:.04em}.dr-donut-legend-row{display:flex;align-items:center;justify-content:space-between;padding:4px 6px;border-radius:6px;transition:background .15s;cursor:default}.dr-donut-legend-row:hover{background:#f1f5f9}.dr-proportion-bar{height:6px;border-radius:3px;background:#f1f5f9;overflow:hidden;margin-top:2px}.dr-proportion-fill{height:100%;border-radius:3px;transition:width .6s cubic-bezier(.4,0,.2,1)}.dr-vtable-th{padding:.75rem 1rem;font-size:.68rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.06em;background:#f8fafc;border-bottom:2px solid #e2e8f0;white-space:nowrap}.dr-vtable-td{padding:.65rem 1rem;font-size:.82rem;border-bottom:1px solid #f1f5f9}.dr-vtable-vendor{padding-top:.75rem;padding-bottom:.75rem}.dr-vtable-row:hover td{background:#f8fafc}.dr-vtable-summary{background:linear-gradient(180deg,#f8fafc,#f1f5f9);border-top:2px solid #e2e8f0}.dr-vtable-summary td{border-bottom:none!important;padding-top:.85rem!important;padding-bottom:.85rem!important}.dr-th{padding:.4rem .6rem;font-size:.62rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.05em;background:linear-gradient(180deg,#f8fafc,#f1f5f9);border-bottom:2px solid #e2e8f0;text-align:center;white-space:nowrap}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes dr-contentFade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.dr-content-area{animation:dr-contentFade .3s cubic-bezier(.4,0,.2,1)}.dr-sidebar-active{position:relative;background:#0052cc40!important;color:#e2e8f0!important;font-weight:700!important;border-left:3px solid #3b82f6!important}.dr-sidebar-active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:60%;background:#3b82f6;border-radius:0 2px 2px 0}.dr-kpi-value-transition{transition:color .3s,transform .3s}.recharts-tooltip-wrapper{transition:transform .15s ease,opacity .15s ease!important}.dr-input-focus:focus{border-color:#3b82f6!important;box-shadow:0 0 0 3px #3b82f61f!important;outline:none}.dr-full-grid{display:grid;grid-template-columns:3fr 2fr;gap:.75rem;align-items:start}.dr-full-grid-left,.dr-full-grid-right{display:flex;flex-direction:column}.dr-page-wrapper{min-height:100vh;background:#f1f5f9;display:flex;flex-direction:column}.dr-layout{display:flex;flex:1}.dr-sidebar{width:220px;flex-shrink:0;display:flex;flex-direction:column;padding:1.5rem .75rem;transition:width .3s cubic-bezier(.4,0,.2,1)}.dr-main{flex:1;overflow:auto;padding:1.5rem 2rem;min-width:0}.dr-kpi-row{display:flex;gap:.75rem;margin-bottom:1.25rem;flex-wrap:wrap}.dr-charts-row{display:grid;grid-template-columns:3fr 2fr;gap:.75rem;margin-bottom:1.5rem}.dr-header-actions{display:flex;align-items:center;gap:8px}@media (max-width: 1024px){.dr-charts-row,.dr-full-grid{grid-template-columns:1fr!important}.dr-sidebar{width:180px!important;padding:1rem .5rem!important}.dr-main{padding:1.25rem 1.5rem!important}.dr-kpi-hero:after{width:80px;height:80px}}@media (max-width: 768px){.dr-layout{flex-direction:column!important}.dr-sidebar{width:100%!important;flex-direction:row!important;padding:.5rem .75rem!important;gap:4px!important;overflow-x:auto;order:2;border-top:1px solid #2d3f52}.dr-sidebar-header,.dr-sidebar-divider,.dr-sidebar-spacer{display:none!important}.dr-sidebar-nav-item{white-space:nowrap;padding:.5rem .75rem!important;font-size:.75rem!important;border-left:none!important;border-bottom:3px solid transparent;border-radius:6px 6px 0 0!important}.dr-sidebar-nav-item.dr-sidebar-active{border-left:none!important;border-bottom:3px solid #3b82f6!important}.dr-sidebar-bottom{display:none!important}.dr-main{order:1;padding:1rem!important}.dr-header-actions{flex-wrap:wrap;gap:6px}.dr-vendor-card{padding:1rem!important}.dr-header-row{flex-direction:column!important;align-items:flex-start!important;gap:10px!important}}@media (max-width: 640px){.dr-kpi-row{display:grid!important;grid-template-columns:1fr 1fr!important;gap:.5rem!important}.dr-kpi-row>*{min-width:0!important}.dr-kpi-icon{width:28px!important;height:28px!important}.dr-charts-row{gap:.5rem!important}.dr-main{padding:.75rem!important}.dr-chip{font-size:.7rem!important;padding:3px 8px!important}.dr-section-label{font-size:.65rem!important}.dr-th{padding:.3rem .4rem!important;font-size:.58rem!important}.dr-vendor-card td{padding:.3rem .4rem!important;font-size:.78rem!important}.dr-header-actions button{padding:.4rem .7rem!important;font-size:.75rem!important}.dr-demo-badge{font-size:.58rem!important;padding:2px 6px!important}}:root{--primary: #0052cc;--primary-hover: #0047b3;--bg-color: #f8fafc;--surface: #ffffff;--text-main: #0f172a;--text-muted: #64748b;--border: #e2e8f0;--success: #16a34a;--warning: #d97706;--danger: #dc2626;--info: #2563eb;--radius-sm: 3px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 2px 8px rgba(0, 0, 0, .08);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,system-ui,-apple-system,sans-serif;background-color:var(--bg-color);color:var(--text-main);line-height:1.5;-webkit-font-smoothing:antialiased}a{text-decoration:none;color:inherit}button{cursor:pointer;border:none;background:none;font-family:inherit}.container{max-width:1200px;margin:0 auto;padding:0 1.5rem}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.flex-col{flex-direction:column}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.grid{display:grid}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.w-full{width:100%}.h-full{height:100%}.text-center{text-align:center}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.25rem}.font-medium{font-weight:500}.font-bold{font-weight:700}.text-muted{color:var(--text-muted)}.text-primary{color:var(--primary)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-danger{color:var(--danger)}.card{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border);padding:1.5rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.45rem 1rem;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;transition:background .15s,color .15s,border-color .15s;gap:.4rem}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-outline{border:1px solid var(--border);background:var(--surface);color:var(--text-main)}.btn-outline:hover{border-color:#94a3b8}.btn-outline.btn-hover-primary:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-ghost{color:var(--text-muted)}.btn-ghost:hover{background:var(--bg-color);color:var(--text-main)}.badge{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:var(--radius-sm);font-size:.7rem;font-weight:600;letter-spacing:.02em;background:var(--bg-color);color:var(--text-muted)}.badge.success{background:#f0fdf4;color:#15803d}.badge.warning{background:#fffbeb;color:#b45309}.badge.danger{background:#fef2f2;color:#b91c1c}.badge.info{background:#eff6ff;color:#1d4ed8}.navbar{height:56px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;position:sticky;top:0;z-index:50}.nav-link{color:var(--text-muted);font-size:.875rem;font-weight:500;transition:color .15s}.nav-link:hover,.nav-link.active{color:var(--text-main)}.table-container{width:100%;overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:1rem;text-align:left;border-bottom:1px solid var(--border)}th{font-weight:600;color:var(--text-muted);font-size:.8rem}.dashboard-layout{display:flex;min-height:calc(100vh - 64px)}.sidebar{width:320px;background:var(--surface);border-left:1px solid var(--border);padding:1.5rem}.main-content{flex:1;padding:2rem;overflow-y:auto}.trend-up{color:var(--success);display:flex;align-items:center;gap:.25rem;font-size:.875rem}.trend-down{color:var(--danger);display:flex;align-items:center;gap:.25rem;font-size:.875rem}.avatar{width:40px;height:40px;border-radius:var(--radius-full);background:var(--border);display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--text-muted);overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:1.5rem;gap:.25rem}.tab{padding:.6rem 1rem;font-size:.875rem;font-weight:500;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;transition:color .15s}.tab.active{color:var(--text-main);border-bottom-color:var(--text-main)}.progress-bg{width:100%;height:6px;background:var(--border);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;border-radius:var(--radius-full)}body.dark-mode{--bg-color: #0f172a;--surface: #1e293b;--text-main: #e2e8f0;--text-muted: #94a3b8;--border: #334155;--primary: #3b82f6;--primary-hover: #2563eb;background-color:#0f172a;color:#e2e8f0}body.dark-mode .navbar{background:#1e293b!important;border-bottom-color:#334155!important}body.dark-mode .card{background:#1e293b!important;border-color:#334155!important;color:#e2e8f0!important}body.dark-mode main{background:#0f172a!important}body.dark-mode *[style*="background: white"],body.dark-mode *[style*="background: #ffffff"],body.dark-mode *[style*="background: rgb(255, 255, 255)"],body.dark-mode *[style*="background-color: white"],body.dark-mode *[style*="background-color: #ffffff"],body.dark-mode *[style*="background-color: rgb(255, 255, 255)"]{background:#1e293b!important;border-color:#334155!important}body.dark-mode *[style*="background: #f8fafc"],body.dark-mode *[style*="background: rgb(248, 250, 252)"],body.dark-mode *[style*="background: #fafafa"],body.dark-mode *[style*="background: rgb(250, 250, 250)"],body.dark-mode *[style*="background: #f1f5f9"],body.dark-mode *[style*="background: rgb(241, 245, 249)"],body.dark-mode *[style*="background-color: #f8fafc"],body.dark-mode *[style*="background-color: rgb(248, 250, 252)"],body.dark-mode *[style*="background-color: #f1f5f9"],body.dark-mode *[style*="background-color: rgb(241, 245, 249)"]{background:#0f172a!important}body.dark-mode *[style*="color: #0f172a"],body.dark-mode *[style*="color: rgb(15, 23, 42)"],body.dark-mode *[style*="color: #1e293b"],body.dark-mode *[style*="color: rgb(30, 41, 59)"],body.dark-mode *[style*="color: #334155"],body.dark-mode *[style*="color: rgb(51, 65, 85)"]{color:#e2e8f0!important}body.dark-mode *[style*="color: #475569"],body.dark-mode *[style*="color: rgb(71, 85, 105)"],body.dark-mode *[style*="color: #64748b"],body.dark-mode *[style*="color: rgb(100, 116, 139)"]{color:#94a3b8!important}body.dark-mode *[style*="border: 1px solid #e2e8f0"],body.dark-mode *[style*="border: 1px solid rgb(226, 232, 240)"],body.dark-mode *[style*="border-bottom: 1px solid #e2e8f0"],body.dark-mode *[style*="border-bottom: 1px solid rgb(226, 232, 240)"],body.dark-mode *[style*="border-bottom: 2px solid #e2e8f0"],body.dark-mode *[style*="border-bottom: 2px solid rgb(226, 232, 240)"],body.dark-mode *[style*="border-bottom: 1px solid #f1f5f9"],body.dark-mode *[style*="border-bottom: 1px solid rgb(241, 245, 249)"],body.dark-mode *[style*="border-top: 1px solid #e2e8f0"],body.dark-mode *[style*="border-top: 1px solid rgb(226, 232, 240)"],body.dark-mode *[style*="border-right: 1px solid #e2e8f0"],body.dark-mode *[style*="border-right: 1px solid rgb(226, 232, 240)"],body.dark-mode *[style*="border-left: 1px solid #e2e8f0"],body.dark-mode *[style*="border-left: 1px solid rgb(226, 232, 240)"]{border-color:#334155!important}body.dark-mode th{color:#94a3b8!important;background:#1e293b!important;border-bottom-color:#334155!important}body.dark-mode td{border-bottom-color:#334155!important}body.dark-mode input,body.dark-mode select{background:#1e293b!important;border-color:#334155!important;color:#e2e8f0!important}body.dark-mode ::-webkit-scrollbar-track{background:#0f172a}body.dark-mode ::-webkit-scrollbar-thumb{background:#334155;border-radius:4px}body.dark-mode .recharts-default-tooltip{background:#1e293b!important;border-color:#334155!important;color:#e2e8f0!important}body.dark-mode .recharts-tooltip-label{color:#94a3b8!important}body.dark-mode .recharts-tooltip-item{color:#e2e8f0!important}body.dark-mode tbody tr:hover{background:#33415559!important}body.dark-mode *[style*="background: rgb(220, 252, 231)"],body.dark-mode *[style*="background: #dcfce7"]{background:#16a34a26!important;color:#4ade80!important}body.dark-mode *[style*="background: rgb(255, 247, 237)"],body.dark-mode *[style*="background: #fff7ed"]{background:#ea580c26!important;color:#fb923c!important}body.dark-mode *[style*="background: rgb(243, 244, 246)"],body.dark-mode *[style*="background: #f3f4f6"]{background:#4755694d!important;color:#94a3b8!important}body.dark-mode *[style*="background: rgb(239, 246, 255)"],body.dark-mode *[style*="background: #eff6ff"]{background:#3b82f626!important}body.dark-mode *[style*="background: rgb(240, 253, 244)"],body.dark-mode *[style*="background: #f0fdf4"]{background:#16a34a1a!important}body.dark-mode *[style*="background: rgb(254, 242, 242)"],body.dark-mode *[style*="background: #fef2f2"]{background:#ef44441a!important}body.dark-mode *[style*="color: #374151"],body.dark-mode *[style*="color: rgb(55, 65, 81)"]{color:#e2e8f0!important}body.dark-mode *[style*="border: 1.5px solid #e2e8f0"],body.dark-mode *[style*="border: 1.5px solid rgb(226, 232, 240)"]{border-color:#334155!important}.navbar-mobile{display:none;position:relative;flex-wrap:wrap;height:auto;min-height:56px}.navbar-desktop{display:flex}@media (max-width: 767px){.navbar-desktop{display:none}.navbar-mobile{display:flex;flex-direction:column;align-items:stretch}.navbar-mobile>.flex{width:100%;min-height:56px;align-items:center}.main-content{padding:1rem}.container{padding:0 .75rem}.card{padding:1rem}.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}th,td{padding:.65rem .75rem;font-size:.8rem}.tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:0}.tab{white-space:nowrap;padding:.6rem .85rem;font-size:.8rem}.dashboard-layout{flex-direction:column}.sidebar{width:100%;border-left:none;border-top:1px solid var(--border);padding:1rem}.text-3xl{font-size:1.5rem}.text-4xl{font-size:1.875rem}.gap-8{gap:1rem}.gap-6{gap:.75rem}}@media (max-width: 768px){body{overflow-x:hidden}.dash-main{padding:1rem!important}.dash-summary-grid{grid-template-columns:repeat(2,1fr)!important;gap:.75rem!important}.dash-summary-card{padding:1rem .85rem!important}.dash-date-range{flex-wrap:nowrap!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch;gap:.4rem!important}.dash-building-header{flex-direction:column!important;align-items:flex-start!important;gap:.75rem!important}.dash-viz-scroll{overflow-x:auto!important;-webkit-overflow-scrolling:touch}.dash-viz-inner{min-width:500px!important}.dash-charts-row{grid-template-columns:1fr!important;gap:1rem!important}.dash-ai-grid{grid-template-columns:1fr!important;gap:1.5rem!important}}@media (max-width: 768px){.login-left-panel{display:none!important}.login-right-panel{padding:2rem 1rem!important}}@media (max-width: 768px){.dir-page-header{flex-direction:column!important;align-items:flex-start!important;gap:.75rem!important}.dir-search{max-width:100%!important}.dir-search input{font-size:16px!important}.dir-contact-grid{grid-template-columns:1fr!important;gap:.75rem!important}.dir-contact-card{padding:1rem!important}.dir-contact-card .avatar{width:36px!important;height:36px!important;font-size:.75rem!important;flex-shrink:0!important}.dir-contact-card .btn{min-height:44px!important}.dir-contact-card .flex.items-center.gap-2.text-sm{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0}.dir-modal-card{width:calc(100vw - 2rem)!important;max-width:400px!important}}@keyframes spin{to{transform:rotate(360deg)}}
