@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";
:root{--bg-color:#f7f8fa;--surface-color:#fff;--border-color:#e4e7ec;--border-light:#f0f2f5;--text-primary:#0f1419;--text-secondary:#5f6b7a;--text-muted:#9aa4b2;--primary:#4353ff;--primary-hover:#3644d9;--primary-light:#eef0ff;--primary-glow:#4353ff1f;--success:#00b37e;--success-bg:#e6f9f2;--warning:#f59e0b;--warning-bg:#fef3c7;--destructive:#e5384b;--destructive-bg:#fde8eb;--info:#3b82f6;--info-bg:#eff6ff;--sidebar-width:272px;--header-height:72px;--shadow-xs:0 1px 2px #1018280d;--shadow-sm:0 2px 6px #1018280a, 0 0 0 1px #10182805;--shadow-md:0 4px 16px -2px #1018280f, 0 2px 4px -1px #10182808;--shadow-lg:0 12px 40px -8px #1018281a, 0 4px 12px -4px #1018280a;--shadow-focus:0 0 0 3px #4353ff2e;--transition-smooth:all .2s cubic-bezier(.25, .8, .25, 1);--transition-bounce:all .3s cubic-bezier(.34, 1.56, .64, 1)}.material-symbols-outlined{font-variation-settings:"FILL" 0, "wght" 400, "GRAD" 0, "opsz" 22;vertical-align:middle;font-size:22px;line-height:1}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.6}a{color:inherit;transition:var(--transition-smooth);text-decoration:none}ul{list-style:none}button{cursor:pointer;background:0 0;border:none;outline:none;font-family:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#d0d5dd;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:#98a2b3}.app-container{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background-color:var(--surface-color);border-right:1px solid var(--border-color);z-index:40;flex-direction:column;height:100vh;display:flex;position:fixed;overflow-y:auto}.main-content{margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-height:100vh;display:flex}.top-header{height:var(--header-height);-webkit-backdrop-filter:saturate(180%)blur(20px);border-bottom:1px solid var(--border-light);z-index:30;background-color:#fffc;justify-content:space-between;align-items:center;padding:0 2.5rem;display:flex;position:sticky;top:0}.page-container{width:100%;max-width:1440px;margin:0 auto;padding:2rem 2.5rem 3rem;animation:.5s cubic-bezier(.25,.8,.25,1) both pageEnter}@keyframes pageEnter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.card,.glass-card{background-color:var(--surface-color);box-shadow:var(--shadow-sm);border:1px solid var(--border-light);transition:var(--transition-smooth);border-radius:16px;padding:1.75rem;position:relative;overflow:hidden}.card:hover,.glass-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-color);transform:translateY(-3px)}.card-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.card-title{color:var(--text-secondary);letter-spacing:-.01em;font-size:.9375rem;font-weight:700}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;margin-bottom:2rem;display:grid}.kpi-card{background-color:var(--surface-color);box-shadow:var(--shadow-sm);border:1px solid var(--border-light);transition:var(--transition-smooth);border-radius:16px;padding:1.5rem 1.75rem;position:relative;overflow:hidden}.kpi-card:before{content:"";background:var(--kpi-accent,var(--primary));opacity:0;border-radius:16px 16px 0 0;height:3px;transition:opacity .2s;position:absolute;top:0;left:0;right:0}.kpi-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.kpi-card:hover:before{opacity:1}.kpi-icon{border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:1rem;font-size:22px;display:flex}.kpi-icon-blue{background:var(--primary-light);color:var(--primary)}.kpi-icon-green{background:var(--success-bg);color:var(--success)}.kpi-icon-red{background:var(--destructive-bg);color:var(--destructive)}.kpi-icon-amber{background:var(--warning-bg);color:#b45309}.kpi-icon-indigo{color:#4f46e5;background:#eef2ff}.kpi-label{color:var(--text-secondary);margin-bottom:.375rem;font-size:.8125rem;font-weight:600}.kpi-value{color:var(--text-primary);letter-spacing:-.03em;font-size:2rem;font-weight:800;line-height:1.2}.kpi-sub{color:var(--text-muted);margin-top:.375rem;font-size:.75rem;font-weight:500}.page-hero{color:#fff;background:linear-gradient(135deg,#4353ff 0%,#6366f1 50%,#818cf8 100%);border-radius:20px;margin-bottom:2rem;padding:2.5rem 3rem;position:relative;overflow:hidden}.page-hero:before{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff1f 0%,#0000 70%);width:400px;height:400px;position:absolute;top:-50%;right:-20%}.page-hero:after{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff14 0%,#0000 70%);width:300px;height:300px;position:absolute;bottom:-30%;left:-10%}.page-hero h1{letter-spacing:-.03em;z-index:1;margin-bottom:.5rem;font-size:1.875rem;font-weight:800;position:relative}.page-hero p{opacity:.85;z-index:1;font-size:1rem;font-weight:500;position:relative}.btn{transition:var(--transition-smooth);white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;display:inline-flex}.btn:active{transform:scale(.96)}.btn-primary{background-color:var(--primary);color:#fff;box-shadow:0 2px 8px #4353ff40}.btn-primary:hover{background-color:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 16px #4353ff4d}.btn-secondary{background-color:var(--surface-color);color:var(--text-primary);border:1px solid var(--border-color);box-shadow:var(--shadow-xs)}.btn-secondary:hover{background-color:var(--bg-color);box-shadow:var(--shadow-sm);border-color:#cbd0d8}.table-container{border-radius:12px;width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--border-color);background-color:var(--bg-color);padding:.875rem 1.25rem;font-size:.6875rem;font-weight:700}td{border-bottom:1px solid var(--border-light);color:var(--text-primary);padding:1rem 1.25rem;font-size:.875rem;font-weight:500}tr{transition:background-color .15s}tr:hover td{background-color:#fafafc}tr:last-child td{border-bottom:none}.badge{letter-spacing:.03em;text-transform:uppercase;border-radius:9999px;align-items:center;padding:.3rem .75rem;font-size:.6875rem;font-weight:700;display:inline-flex}.badge-success{background-color:var(--success-bg);color:var(--success)}.badge-warning{background-color:var(--warning-bg);color:#b45309}.badge-info{background-color:var(--primary-light);color:var(--primary)}.sidebar-logo-container{border-bottom:1px solid var(--border-light);align-items:center;padding:1.75rem 1.5rem;display:flex}.sidebar-logo{max-width:200px;height:auto}.nav-links{flex:1;padding:1rem .75rem}.nav-section-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;padding:1.25rem 1rem .625rem;font-size:.6875rem;font-weight:700}.nav-item{color:var(--text-secondary);transition:var(--transition-smooth);border-radius:10px;align-items:center;gap:.75rem;margin-bottom:2px;padding:.75rem 1rem;font-size:.9375rem;font-weight:600;display:flex}.nav-item .material-symbols-outlined{color:var(--text-muted);font-size:20px;transition:color .2s}.nav-item:hover{background-color:var(--bg-color);color:var(--text-primary)}.nav-item:hover .material-symbols-outlined{color:var(--text-secondary)}.nav-item.active{background-color:var(--primary-light);color:var(--primary)}.nav-item.active .material-symbols-outlined{color:var(--primary)}.nav-icon{width:20px;margin-right:0}.analytics-section{margin-bottom:2rem}.analytics-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.analytics-tabs{background-color:var(--bg-color);border:1px solid var(--border-light);border-radius:10px;gap:2px;padding:4px;display:flex}.analytics-tab{color:var(--text-muted);transition:var(--transition-smooth);border-radius:8px;padding:.5rem 1.25rem;font-size:.875rem;font-weight:600}.analytics-tab:hover{color:var(--text-primary)}.analytics-tab.active{background-color:var(--surface-color);color:var(--primary);box-shadow:var(--shadow-xs)}.analytics-grid{grid-template-columns:2.2fr 1fr;gap:1.5rem;margin-bottom:2.5rem;display:grid}@media (max-width:1100px){.analytics-grid{grid-template-columns:1fr}}.chart-container{width:100%;padding-top:1rem;position:relative}.chart-tooltip{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);box-shadow:var(--shadow-lg);pointer-events:none;z-index:10;background:#fffffff5;border-radius:12px;padding:1rem;font-size:.8125rem;position:absolute}.chart-tooltip-title{color:var(--text-primary);border-bottom:1px solid var(--border-light);margin-bottom:.5rem;padding-bottom:.5rem;font-weight:700}.chart-tooltip-row{justify-content:space-between;gap:1.5rem;margin-top:.35rem;display:flex}.chart-tooltip-value{font-weight:700}.trend-badge{border-radius:8px;align-items:center;gap:.25rem;padding:.25rem .65rem;font-size:.75rem;font-weight:700;display:inline-flex}.trend-badge-positive{background-color:var(--success-bg);color:var(--success)}.trend-badge-negative{background-color:var(--destructive-bg);color:var(--destructive)}.trend-badge-neutral{background-color:var(--bg-color);color:var(--text-secondary)}.chart-gridline{stroke:var(--border-light);stroke-dasharray:4 4}.chart-axis-text{fill:var(--text-muted);font-size:11px;font-weight:600}.chart-legend{color:var(--text-secondary);align-items:center;gap:1.5rem;font-size:.8125rem;font-weight:500;display:flex}.legend-item{align-items:center;gap:.5rem;display:flex}.legend-dot{border-radius:50%;width:10px;height:10px}.login-container{background:linear-gradient(160deg,#f7f8fa 0%,#eef0ff 40%,#f7f8fa 60%,#e6f9f2 100%);justify-content:center;align-items:center;width:100%;min-height:100vh;padding:1.5rem;display:flex;position:relative;overflow:hidden}.login-container:before{content:"";pointer-events:none;background:radial-gradient(circle,#4353ff0f 0%,#0000 70%);width:600px;height:600px;position:absolute;top:-200px;right:-200px}.login-container:after{content:"";pointer-events:none;background:radial-gradient(circle,#00b37e0d 0%,#0000 70%);width:500px;height:500px;position:absolute;bottom:-150px;left:-150px}.login-card{background-color:var(--surface-color);width:100%;max-width:440px;box-shadow:var(--shadow-lg);border:1px solid var(--border-light);z-index:1;border-radius:24px;flex-direction:column;padding:3rem;animation:.6s cubic-bezier(.25,.8,.25,1) both cardFloat;display:flex;position:relative}@keyframes cardFloat{0%{opacity:0;transform:translateY(20px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.login-logo{max-width:160px;height:auto;margin:0 auto 2rem;display:block}.login-title{color:var(--text-primary);text-align:center;letter-spacing:-.03em;margin-bottom:.5rem;font-size:1.75rem;font-weight:800}.login-subtitle{color:var(--text-secondary);text-align:center;margin-bottom:2.5rem;font-size:.9375rem}.form-group{flex-direction:column;gap:.5rem;margin-bottom:1.5rem;display:flex}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;font-size:.8125rem;font-weight:700}.form-input{border:1.5px solid var(--border-color);background-color:var(--bg-color);width:100%;color:var(--text-primary);transition:var(--transition-smooth);border-radius:12px;outline:none;padding:.75rem 1rem;font-size:.9375rem;font-weight:500}.form-input::placeholder{color:var(--text-muted);font-weight:400}.form-input:focus{border-color:var(--primary);box-shadow:var(--shadow-focus);background-color:var(--surface-color)}.login-notice{background-color:var(--success-bg);color:var(--success);text-align:center;border:1px solid #a7e8cf;border-radius:12px;margin-bottom:1.5rem;padding:1rem;font-size:.875rem;font-weight:600}.login-inline-link{color:var(--primary);font-size:.8125rem;font-weight:600;text-decoration:none}.login-inline-link:hover{text-decoration:underline}.login-footer-link{text-align:center;color:var(--text-secondary);margin-top:1.5rem;font-size:.875rem}.login-footer-link a{color:var(--primary);font-weight:600;text-decoration:none}.login-error{background-color:var(--destructive-bg);color:var(--destructive);text-align:center;border:1px solid #fecdd3;border-radius:12px;margin-bottom:1.5rem;padding:1rem;font-size:.875rem;font-weight:600}.user-profile-widget{background-color:var(--bg-color);border:1px solid var(--border-light);transition:var(--transition-smooth);border-radius:9999px;align-items:center;gap:.75rem;padding:.375rem .625rem .375rem 1rem;display:flex}.user-profile-widget:hover{border-color:var(--border-color)}.user-email-text{color:var(--text-primary);font-size:.875rem;font-weight:600}.user-role-badge{text-transform:uppercase;letter-spacing:.06em;border-radius:9999px;padding:.2rem .6rem;font-size:.625rem;font-weight:800}.user-role-badge-admin{background-color:var(--primary-light);color:var(--primary)}.user-role-badge-ops{background-color:var(--success-bg);color:var(--success)}.logout-btn{color:var(--text-muted);transition:var(--transition-smooth);background:0 0;border-radius:8px;padding:.375rem .625rem;font-size:.8125rem;font-weight:600}.logout-btn:hover{color:var(--destructive);background-color:var(--destructive-bg)}.quick-login-divider{text-align:center;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;align-items:center;margin:2rem 0;font-size:.6875rem;font-weight:700;display:flex}.quick-login-divider:before,.quick-login-divider:after{content:"";border-bottom:1px solid var(--border-light);flex:1}.quick-login-divider:not(:empty):before{margin-right:1em}.quick-login-divider:not(:empty):after{margin-left:1em}.quick-login-buttons{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}@media (max-width:768px){.sidebar{display:none}.main-content{margin-left:0}.top-header{padding:0 1.25rem}.page-container{padding:1.25rem}.page-hero{border-radius:16px;padding:1.5rem}.page-hero h1{font-size:1.375rem}.kpi-grid{grid-template-columns:1fr}}
