@import "https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@500;600&display=swap";:root{--font-sans:"Be Vietnam Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--primary:#0d6470;--primary-hover:#084c56;--primary-light:#e1f2ef;--secondary:#15353f;--secondary-light:#eef2ee;--success:#10b981;--success-light:#ecfdf5;--success-border:#a7f3d0;--warning:#f59e0b;--warning-light:#fefbeb;--warning-border:#fde68a;--danger:#ef4444;--danger-light:#fef2f2;--danger-border:#fca5a5;--info:#3b82f6;--info-light:#eff6ff;--info-border:#bfdbfe;--background:#f4f5f0;--surface:#fffefb;--surface-hover:#f6f8f4;--border:#dce3dc;--border-focus:#6aa6a0;--text-main:#1d2b2f;--text-muted:#647275;--text-light:#99a3a0;--text-on-primary:#fff;--shadow-sm:0 1px 2px #1939390d;--shadow-md:0 6px 16px #1c383517;--shadow-lg:0 14px 30px #1c38351f;--text-caption:.6875rem;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.875rem;--text-md:.9375rem;--text-lg:1.0625rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--radius-sm:6px;--radius-md:8px;--radius-lg:14px;--radius-full:9999px;--transition:all .2s cubic-bezier(.4, 0, .2, 1)}.dark-theme{--background:#090d16;--surface:#131a26;--surface-hover:#1b2535;--secondary:#f8fafc;--secondary-light:#1b2535;--text-main:#f1f5f9;--text-muted:#94a3b8;--text-light:#64748b;--border:#223047;--border-focus:#0284c7;--primary-light:#0284c726;--shadow-sm:0 1px 2px 0 #00000080;--shadow-md:0 4px 6px -1px #0000004d, 0 2px 4px -2px #0000004d;--shadow-lg:0 10px 15px -3px #0006, 0 4px 6px -4px #0006}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);font-size:var(--text-base);background-color:var(--background);color:var(--text-main);letter-spacing:-.015em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(circle at 12% 0,#0d64700b,#0000 30rem);line-height:1.5;transition:background-color .3s,color .3s}body:before{content:"";pointer-events:none;opacity:.28;background-image:linear-gradient(#15353f05 1px,#0000 1px),linear-gradient(90deg,#15353f05 1px,#0000 1px);background-size:32px 32px;position:fixed;inset:0}a{color:var(--primary);transition:var(--transition);text-decoration:none}a:hover{color:var(--primary-hover)}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}h1,h2,h3,h4,h5,h6{letter-spacing:-.02em;font-weight:700;line-height:1.25}.text-caption{font-size:var(--text-caption)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-md{font-size:var(--text-md)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:clamp(1.4rem, 1.2rem + .6vw, var(--text-2xl));letter-spacing:-.03em}.text-3xl{font-size:clamp(1.6rem, 1.3rem + 1vw, var(--text-3xl));letter-spacing:-.035em}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-muted{color:var(--text-muted)}.text-light{color:var(--text-light)}.text-primary{color:var(--primary)}.tabular-nums,.text-caption,.table th,.metric-pill{font-variant-numeric:tabular-nums}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;overflow:hidden}.flex{display:flex}.flex-col{flex-direction:column}.align-center{align-items:center}.align-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.flex-wrap{flex-wrap:wrap}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.flex-1{flex:1}.grid{display:grid}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width<=1024px){.grid-cols-4,.grid-cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}.flex-wrap-mobile{flex-direction:column}}.w-full{width:100%}.h-full{height:100%}.cursor-pointer{cursor:pointer}.relative{position:relative}.overflow-hidden{overflow:hidden}.uppercase{text-transform:uppercase}.tracking-wider{letter-spacing:.05em}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:var(--radius-sm)}.rounded-full{border-radius:var(--radius-full)}.mx-auto{margin-left:auto;margin-right:auto}.max-w-md{max-width:28rem}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.border{border:1px solid var(--border)}.border-bottom{border-bottom:1px solid var(--border)}.border-primary{border-color:var(--primary)}.bg-surface{background-color:var(--surface)}.bg-primary-light{background-color:var(--primary-light)}.bg-secondary-light{background-color:var(--secondary-light)}.bg-success-light{background-color:var(--success-light)}.bg-warning-light{background-color:var(--warning-light)}.bg-danger-light{background-color:var(--danger-light)}.bg-info-light{background-color:var(--info-light)}.badge-secondary{background-color:var(--secondary-light);color:var(--text-muted);border:1px solid var(--border)}.hover-text-primary{transition:var(--transition)}.hover-text-primary:hover{color:var(--primary)}.m-0{margin:0}.m-12{margin:3rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-12{padding-bottom:3rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-12{padding-top:3rem;padding-bottom:3rem}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)translateY(4px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.55}}.animate-pulse{animation:1.8s cubic-bezier(.4,0,.6,1) infinite pulse-soft}@media (prefers-reduced-motion:reduce){.animate-pulse{animation:none}}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:1.75rem;display:flex}.page-header-title{align-items:center;gap:.625rem;display:flex}.page-header-title h1{letter-spacing:-.03em;font-size:clamp(1.35rem,1.15rem + .6vw,1.625rem)}.page-header-desc{color:var(--text-muted);font-size:var(--text-sm);max-width:60ch;margin-top:.375rem}.page-header-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.card{background-color:var(--surface);border-radius:var(--radius-md);box-shadow:none;transition:var(--transition);border:1px solid #223f3e1c;padding:1.5rem}.card:hover{box-shadow:var(--shadow-sm);border-color:#0d647040}.card-title{font-size:var(--text-lg);align-items:center;gap:.5rem;margin-bottom:1rem;font-weight:700;display:flex}.badge{border-radius:var(--radius-sm);font-size:var(--text-caption);letter-spacing:.01em;align-items:center;gap:.25rem;padding:.25rem .625rem;font-weight:600;display:inline-flex}.badge-primary{background-color:var(--primary-light);color:var(--primary)}.badge-success{background-color:var(--success-light);color:var(--success);border:1px solid var(--success-border)}.badge-warning{background-color:var(--warning-light);color:var(--warning);border:1px solid var(--warning-border)}.badge-danger{background-color:var(--danger-light);color:var(--danger);border:1px solid var(--danger-border)}.badge-info{background-color:var(--info-light);color:var(--info);border:1px solid var(--info-border)}.badge-muted{background-color:var(--secondary-light);color:var(--text-muted);border:1px solid var(--border)}.form-group{flex-direction:column;gap:.375rem;margin-bottom:1.25rem;display:flex}.form-label{font-size:var(--text-sm);color:var(--text-main);font-weight:600}.form-control{border:1px solid var(--border);border-radius:var(--radius-sm);background-color:var(--surface);width:100%;min-width:0;max-width:100%;color:var(--text-main);transition:var(--transition);outline:none;padding:.625rem .875rem}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0d647024}.form-control:disabled{background-color:var(--secondary-light);color:var(--text-muted);cursor:not-allowed}textarea.form-control{resize:vertical;min-height:100px}.btn{min-height:40px;font-size:var(--text-sm);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);box-shadow:none;border:1px solid #0000;outline:none;justify-content:center;align-items:center;gap:.5rem;padding:0 1.25rem;font-weight:600;line-height:1.2;display:inline-flex}.btn:not(.btn-sm):not(.btn-icon){min-width:112px}.btn-primary{background-color:var(--primary);color:var(--text-on-primary);box-shadow:0 2px #0539412e}.btn-primary:hover{background-color:var(--primary-hover);transform:translateY(-1px)}.btn-secondary{background-color:var(--surface);color:var(--text-main);border-color:var(--border)}.btn-secondary:hover{background-color:var(--surface-hover);border-color:var(--text-light)}.btn-success{background-color:var(--success);color:#fff}.btn-success:hover{background-color:#059669}.btn-danger{background-color:var(--danger);color:#fff}.btn-danger:hover{background-color:#dc2626}.btn:active{transform:translateY(1px)scale(.99)}.btn:focus-visible,.form-control:focus-visible,button:focus-visible{outline-offset:2px;outline:3px solid #0d647042}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-sm{min-height:32px;font-size:var(--text-xs);padding:0 .8rem}.btn-icon{width:36px;min-width:0;min-height:36px;padding:0}@media (pointer:coarse){.btn-icon{width:44px;min-height:44px}}.table-container{border-radius:var(--radius-sm);background-color:var(--surface);border:1px solid #223f3e1f;width:100%;overflow-x:auto}.table{border-collapse:collapse;text-align:left;width:100%;font-size:var(--text-sm)}.table th{color:var(--text-muted);font-weight:600;font-size:var(--text-caption);text-transform:uppercase;letter-spacing:.02em;border-bottom:1px solid var(--border);white-space:nowrap;background-color:#edf2ee;padding:.75rem 1rem}.table td{border-bottom:1px solid var(--border);color:var(--text-main);vertical-align:middle;padding:1rem}.table-cell-center{text-align:center;padding:.75rem}.table tr:last-child td{border-bottom:none}.table tr:hover td{background-color:#f6f8f4}.alert-banner{border-radius:var(--radius-md);border:1px solid #0000;gap:.75rem;margin-bottom:1rem;padding:1rem;display:flex}.alert-banner-danger{background-color:var(--danger-light);border-color:var(--danger-border);color:#991b1b}.alert-banner-warning{background-color:var(--warning-light);border-color:var(--warning-border);color:#92400e}.alert-banner-info{background-color:var(--info-light);border-color:var(--info-border);color:#1e40af}.empty-state{background:var(--secondary-light);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--radius-md);text-align:center;padding:2.5rem 2rem}.empty-state-icon{border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);width:52px;height:52px;color:var(--primary);justify-content:center;align-items:center;margin:0 auto 1rem;display:flex}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--background)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-light)}.header-bar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);z-index:100;min-height:72px;box-shadow:none;background:#fffefbeb;padding:1rem 2.5rem;position:sticky;top:0}.app-main{min-width:0}.content-container{width:100%;max-width:100%;padding:2.25rem 2.5rem 3rem}@media (width<=640px){.content-container{padding:1.25rem 1rem 2rem}}.tab-list{border-bottom:1px solid var(--border);gap:1.25rem;margin-bottom:1.5rem;padding-bottom:1px;display:flex;overflow-x:auto}.tab-item{font-weight:600;font-size:var(--text-sm);color:var(--text-muted);cursor:pointer;transition:var(--transition);white-space:nowrap;border-bottom:2px solid #0000;padding:.75rem .25rem}.tab-item:hover{color:var(--primary)}.tab-item.active{color:var(--primary);border-bottom-color:var(--primary);border-bottom-width:3px}.log-item{margin-bottom:1.5rem;padding-left:24px;position:relative}.log-item:before{content:"";background-color:var(--primary);border:2px solid var(--surface);width:10px;height:10px;box-shadow:0 0 0 2px var(--primary-light);z-index:2;border-radius:50%;position:absolute;top:6px;left:5px}.log-item:after{content:"";background-color:var(--border);z-index:1;width:2px;height:calc(100% + 8px);position:absolute;top:16px;left:9px}.log-item:last-child:after{display:none}.stat-card-visual{background:var(--surface);border-radius:var(--radius-sm);box-shadow:none;border:1px solid #223f3e1c;padding:1.25rem 1.5rem;transition:transform .2s,box-shadow .2s,border-color .2s;position:relative;overflow:hidden}.stat-card-visual:before{content:"";background:var(--primary);opacity:.75;width:3px;position:absolute;inset:0 auto 0 0}.stat-card-visual:hover{box-shadow:var(--shadow-md);border-color:#0d647040;transform:translateY(-2px)}.stat-value{font-variant-numeric:tabular-nums;letter-spacing:-.02em}.stat-label{font-size:var(--text-xs);color:var(--text-muted);font-weight:500;line-height:1.45}.empty-state-slim{background:var(--secondary-light);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--radius-sm);min-height:56px;padding:.875rem 1.25rem}.chart-placeholder{text-align:center;height:160px;color:var(--text-muted);font-size:var(--text-sm);background:var(--secondary-light);border:1px dashed var(--border);border-radius:var(--radius-sm);justify-content:center;align-items:center;padding:0 1.5rem;display:flex}.role-switcher-toggle:hover{opacity:1!important}.login-shell{background:var(--background);flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:100vh;padding:1.5rem;display:flex}.login-card{width:100%;max-width:400px;padding:2rem}.login-brand{font-size:var(--text-xl);letter-spacing:-.02em;color:var(--text-main);align-items:center;gap:.5rem;font-weight:800;display:flex}.login-sub{font-size:var(--text-sm);color:var(--text-muted);margin-top:.5rem;line-height:1.45}.login-eye{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:6px;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.login-error{background:var(--danger-light);border:1px solid var(--danger-border);color:#991b1b;font-size:var(--text-sm);border-radius:var(--radius-sm);padding:.625rem .75rem}.login-notice,.login-notice>span{font-size:var(--text-sm);color:var(--text-main);line-height:1.45}.login-notice{background:var(--secondary-light);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--radius-sm);align-items:flex-start;gap:.5rem;padding:.75rem;display:flex}.login-card .btn{width:100%;min-width:0}.login-foot{font-size:var(--text-caption);color:var(--text-light)}.sidebar-foot-btn{font-size:var(--text-caption);color:#cbd5e1;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);background:#ffffff0f;border:1px solid #ffffff1f;flex:1;justify-content:center;align-items:center;gap:5px;padding:6px 8px;font-weight:600;display:inline-flex}.sidebar-foot-btn:hover{color:#fff;background:#ffffff24}.dashboard-filter-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);flex-wrap:wrap;align-items:flex-end;gap:.75rem;padding:.875rem 1rem;display:flex}.dashboard-filter-bar .filter-field{flex-direction:column;flex:170px;gap:.25rem;min-width:0;display:flex}.dashboard-filter-bar .filter-label{font-size:var(--text-caption);color:var(--text-muted);font-weight:600}.dashboard-filter-bar .form-control{height:36px;font-size:var(--text-sm);padding:0 .625rem}@media (width<=720px){.dashboard-filter-bar{grid-template-columns:1fr;align-items:stretch;display:grid}.dashboard-filter-bar .filter-field{min-width:0}}.btn-danger-hover:hover{background-color:var(--danger)!important;border-color:var(--danger)!important;color:#fff!important}.btn-danger-hover:hover svg{color:#fff}.modal-scroll-fade{position:relative;-webkit-mask-image:linear-gradient(#000 calc(100% - 24px),#0000 100%);mask-image:linear-gradient(#000 calc(100% - 24px),#0000 100%)}select.form-control{text-overflow:ellipsis}.icon-box-lg{border-radius:var(--radius-sm);background:var(--secondary-light);width:44px;height:44px;color:var(--primary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.icon-box-blue,.icon-box-emerald,.icon-box-amber,.icon-box-rose,.icon-box-indigo{background:var(--secondary-light);color:var(--primary)}.metric-pill{border-radius:var(--radius-sm);font-size:var(--text-caption);background:var(--secondary-light);border:1px solid var(--border);align-items:center;gap:6px;padding:4px 10px;font-weight:600;display:inline-flex}.hover-card-rise{transition:transform .2s,box-shadow .2s}.hover-card-rise:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.visual-progress-bar{background-color:var(--border);border-radius:2px;height:6px;position:relative;overflow:hidden}.visual-progress-fill{border-radius:2px;height:100%;transition:width .6s ease-in-out}.app-sidebar{--surface:#123944;--secondary-light:#1b4853;--border:#daebe724;--text-main:#f5f7f2;--text-muted:#b6c9c8;--text-light:#86a5a7;--primary:#9dd7c7;--primary-light:#9dd7c724;box-shadow:10px 0 30px #12394414;background:linear-gradient(#163f4a 0%,#102e37 100%)!important}.brand-lockup{min-height:83px}.brand-lockup svg{color:#9dd7c7}.app-navigation button:hover{color:#fff!important;background:#ffffff12!important}.app-sidebar .text-primary{color:#9dd7c7}.app-sidebar .sidebarFooter{background:0 0}.global-search-icon{color:var(--text-light);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.global-search-input{width:280px;height:36px;font-size:var(--text-sm);padding:0 .75rem 0 32px}.global-search-results{z-index:200;width:360px;max-height:340px;box-shadow:var(--shadow-lg);padding:6px;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto}.global-search-item{text-align:left;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;grid-template-rows:auto auto;grid-template-columns:auto 1fr;column-gap:8px;width:100%;padding:8px 10px;display:grid}.global-search-item:hover{background:var(--surface-hover)}.global-search-item>span:nth-child(3){grid-column:2}.breadcrumb-sep{color:var(--text-light)}svg.lucide{stroke-width:1.75px}.header-mobile-nav-btn,.sidebar-mobile-close{display:none}.mobile-nav-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:290;background:#0f172a73;position:fixed;inset:0}@media (width<=1024px){.app-sidebar{box-shadow:var(--shadow-lg);transform:translate(-100%);z-index:300!important;width:min(82vw,300px)!important;transition:transform .25s cubic-bezier(.4,0,.2,1)!important}.app-sidebar.mobile-open{transform:translate(0)}.app-main{margin-left:0!important}.header-mobile-nav-btn,.sidebar-mobile-close{display:inline-flex!important}.sidebar-collapse-btn{display:none!important}.content-container{padding:1.5rem 1.25rem 2.5rem}.page-header{flex-direction:column;align-items:stretch}}@media (width<=720px){.global-search-input{width:150px}.global-search-input:focus{width:200px}.global-search-results{width:min(88vw,340px)}.header-bar{padding:.75rem 1rem}}@media (width<=480px){.global-search{display:none}.content-container{padding:1.25rem .875rem 2rem}}
