@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Noto+Sans+KR:wght@300;400;500;700&family=JetBrains+Mono:wght@400;500&display=swap";
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2?dpl=dpl_B3EUC7A5iiYEXX4AnLwh44cRTv1o)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2?dpl=dpl_B3EUC7A5iiYEXX4AnLwh44cRTv1o)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2?dpl=dpl_B3EUC7A5iiYEXX4AnLwh44cRTv1o)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2?dpl=dpl_B3EUC7A5iiYEXX4AnLwh44cRTv1o)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2?dpl=dpl_B3EUC7A5iiYEXX4AnLwh44cRTv1o)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2?dpl=dpl_B3EUC7A5iiYEXX4AnLwh44cRTv1o)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2?dpl=dpl_B3EUC7A5iiYEXX4AnLwh44cRTv1o)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_c15e96cb-module__0bjUvq__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_c15e96cb-module__0bjUvq__variable{--font-inter:"Inter", "Inter Fallback"}
@layer base{:root{--bg-primary:#080810;--bg-secondary:#0f0f1a;--bg-tertiary:#161625;--bg-card:#111120;--bg-hover:#1c1c30;--bg-input:#13131f;--border:#2e2e48;--border-light:#232338;--border-focus:#6366f1;--text-primary:#eef;--text-secondary:#9898b8;--text-tertiary:#6868888;--text-muted:#58587a;--text-inverted:#080810;--accent-blue:#5b9eff;--accent-blue-dim:#5b9eff1f;--accent-blue-glow:#5b9eff40;--accent-purple:#8b5cf6;--accent-purple-dim:#8b5cf61f;--accent-purple-glow:#8b5cf64d;--accent-green:#10d98a;--accent-green-dim:#10d98a1f;--accent-red:#f06060;--accent-red-dim:#f060601f;--accent-orange:#f9a825;--accent-orange-dim:#f9a8251f;--accent-cyan:#22d3ee;--accent-cyan-dim:#22d3ee1f;--accent-yellow:#eab308;--accent-yellow-dim:#eab3081f;--gradient-primary:linear-gradient(135deg, #5b9eff 0%, #8b5cf6 100%);--gradient-green:linear-gradient(135deg, #10d98a 0%, #0ea5e9 100%);--gradient-warm:linear-gradient(135deg, #f9a825 0%, #f06060 100%);--gradient-glow:radial-gradient(ellipse at 30% 0%, #8b5cf614 0%, transparent 60%);--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 16px #00000080;--shadow-lg:0 8px 32px #0009;--shadow-card:0 2px 12px #00000073, 0 0 0 1px #ffffff08;--shadow-glow-blue:0 0 24px #5b9eff33;--shadow-glow-purple:0 0 24px #8b5cf640;--shadow-glow-green:0 0 24px #10d98a33;--sidebar-width:260px;--sidebar-collapsed:72px;--header-height:60px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:var(--gradient-glow);background-attachment:fixed;min-height:100vh;font-family:Inter,Noto Sans KR,system-ui,-apple-system,sans-serif;line-height:1.5}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#3a3a58;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#4a4a70}::selection{color:#fff;background:#8b5cf64d}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:4px}}@layer utilities{.text-3xl{letter-spacing:-.03em;font-size:30px;font-weight:800;line-height:1.2}.text-2xl{letter-spacing:-.02em;font-size:24px;font-weight:700;line-height:1.25}.text-xl{letter-spacing:-.015em;font-size:20px;font-weight:600;line-height:1.3}.text-lg{font-size:17px;font-weight:600;line-height:1.4}.text-base{font-size:14px;font-weight:400;line-height:1.6}.text-sm{font-size:13px;font-weight:400;line-height:1.5}.text-xs{letter-spacing:.04em;font-size:11px;font-weight:500;line-height:1.5}.text-mono{font-family:JetBrains Mono,monospace;font-size:13px}.fw-400{font-weight:400}.fw-500{font-weight:500}.fw-600{font-weight:600}.fw-700{font-weight:700}.fw-800{font-weight:800}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text-primary{color:var(--text-primary)!important}.text-secondary{color:var(--text-secondary)!important}.text-muted{color:var(--text-muted)!important}.text-green{color:var(--accent-green)!important}.text-red{color:var(--accent-red)!important}.text-blue{color:var(--accent-blue)!important}.text-orange{color:var(--accent-orange)!important}.text-cyan{color:var(--accent-cyan)!important}.text-purple{color:var(--accent-purple)!important}.gradient-text{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.gradient-text-warm{background:var(--gradient-warm);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.glass-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:border-color .2s,box-shadow .2s,transform .15s}.glass-card:hover{box-shadow:var(--shadow-card), 0 0 0 1px #5b9eff14;border-color:#5b9eff40}.gradient-border{border-radius:var(--radius-lg);background:var(--bg-card);background-clip:padding-box;border:1px solid #0000;position:relative}.gradient-border:before{content:"";border-radius:var(--radius-lg);background:var(--gradient-primary);z-index:-1;opacity:.4;position:absolute;inset:-1px}.stat-blue{border-color:#5b9eff40!important}.stat-purple{border-color:#8b5cf640!important}.stat-green{border-color:#10d98a40!important}.stat-red{border-color:#f0606040!important}.stat-orange{border-color:#f9a82540!important}.stat-cyan{border-color:#22d3ee40!important}.stat-yellow{border-color:#eab30840!important}.stat-blue .stat-icon{background:var(--accent-blue-dim);color:var(--accent-blue)}.stat-purple .stat-icon{background:var(--accent-purple-dim);color:var(--accent-purple)}.stat-green .stat-icon{background:var(--accent-green-dim);color:var(--accent-green)}.stat-red .stat-icon{background:var(--accent-red-dim);color:var(--accent-red)}.stat-orange .stat-icon{background:var(--accent-orange-dim);color:var(--accent-orange)}.stat-cyan .stat-icon{background:var(--accent-cyan-dim);color:var(--accent-cyan)}.stat-yellow .stat-icon{background:var(--accent-yellow-dim);color:var(--accent-yellow)}.stat-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.stat-value{letter-spacing:-.03em;color:var(--text-primary);font-size:28px;font-weight:800;line-height:1.1}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}.stat-delta-up{color:var(--accent-green);font-size:12px;font-weight:600}.stat-delta-down{color:var(--accent-red);font-size:12px;font-weight:600}.badge{border-radius:var(--radius-full);letter-spacing:.02em;white-space:nowrap;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:600;line-height:1.5;display:inline-flex}.badge-blue{background:var(--accent-blue-dim);color:#82b8ff;border:1px solid #5b9eff4d}.badge-purple{background:var(--accent-purple-dim);color:#b08aff;border:1px solid #8b5cf659}.badge-green{background:var(--accent-green-dim);color:#3eeaaa;border:1px solid #10d98a4d}.badge-red{background:var(--accent-red-dim);color:#ff8080;border:1px solid #f0606059}.badge-orange{background:var(--accent-orange-dim);color:#ffca5a;border:1px solid #f9a8254d}.badge-cyan{background:var(--accent-cyan-dim);color:#5de8ff;border:1px solid #22d3ee4d}.badge-yellow{background:var(--accent-yellow-dim);color:#facc15;border:1px solid #eab3084d}.badge-gray{color:var(--text-secondary);border:1px solid var(--border);background:#64648226}.nav-item{border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;border:1px solid #0000;align-items:center;gap:10px;padding:9px 12px;font-size:13.5px;font-weight:500;text-decoration:none;transition:all .15s;display:flex;position:relative}.nav-item:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-light)}.nav-item.active{color:#c4adff;background:#8b5cf61a;border-color:#8b5cf640;font-weight:600}.nav-item.active:before{content:"";background:var(--gradient-primary);border-radius:0 3px 3px 0;width:3px;position:absolute;top:6px;bottom:6px;left:-1px}.nav-section-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;padding:16px 12px 6px;font-size:10px;font-weight:700}.table-dark{border-collapse:separate;border-spacing:0;width:100%}.table-dark thead tr{background:var(--bg-secondary);z-index:1;position:sticky;top:0}.table-dark th{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.07em;border-bottom:2px solid var(--border);text-align:left;white-space:nowrap;padding:11px 16px;font-size:11px;font-weight:700}.table-dark td{color:var(--text-primary);border-bottom:1px solid var(--border-light);vertical-align:middle;padding:13px 16px;font-size:13.5px;transition:background .1s}.table-dark tbody tr:nth-child(2n) td{background:#ffffff04}.table-dark tbody tr:hover td{cursor:pointer;background:var(--bg-hover)!important}.table-dark tbody tr.table-row-clickable:hover td{box-shadow:inset 3px 0 0 var(--accent-blue);background:#5b9eff14!important}.table-dark tbody tr.table-row-clickable:active td{background:#5b9eff24!important}.table-dark tbody tr:last-child td{border-bottom:none}.col-number{text-align:right;font-variant-numeric:tabular-nums;font-family:JetBrains Mono,monospace;font-size:13px}.col-center{text-align:center}.input-dark{background:var(--bg-input);border:1.5px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);outline:none;width:100%;padding:10px 14px;font-family:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s}.input-dark::placeholder{color:var(--text-muted)}.input-dark:hover{border-color:#3e3e60}.input-dark:focus{border-color:var(--accent-purple);background:#0f0f20;box-shadow:0 0 0 3px #8b5cf626}select.input-dark{cursor:pointer}.input-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-size:11px;font-weight:700;display:block}.input-group{flex-direction:column;gap:0;display:flex}.btn{border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:none;outline:none;justify-content:center;align-items:center;gap:6px;padding:9px 18px;font-family:inherit;font-size:13.5px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:0 2px 8px #8b5cf64d}.btn-primary:hover:not(:disabled){opacity:.92;transform:translateY(-1px);box-shadow:0 4px 16px #8b5cf666}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1.5px solid var(--border)}.btn-secondary:hover:not(:disabled){border-color:var(--accent-purple);color:var(--accent-purple);background:#8b5cf60f}.btn-ghost{color:var(--text-secondary);background:0 0;border:1px solid #0000}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary);border-color:var(--border)}.btn-danger{background:var(--accent-red-dim);color:#ff8080;border:1.5px solid #f0606059}.btn-danger:hover:not(:disabled){background:var(--accent-red);color:#fff}.btn-success{background:var(--accent-green-dim);color:#3eeaaa;border:1.5px solid #10d98a4d}.btn-success:hover:not(:disabled){background:var(--accent-green);color:#fff}.btn-warning{background:var(--accent-orange-dim);color:#ffca5a;border:1.5px solid #f9a8254d}.btn-warning:hover:not(:disabled){background:var(--accent-orange);color:#fff}.btn-sm{border-radius:var(--radius-sm);padding:6px 12px;font-size:12px}.btn-xs{border-radius:6px;padding:4px 10px;font-size:11px}.btn-lg{border-radius:var(--radius-lg);padding:12px 24px;font-size:15px}.btn-icon{width:36px;height:36px;padding:8px}.alert-critical{border:1px solid #f0606059;border-left:3px solid var(--accent-red);border-radius:var(--radius-md);background:#f060601a;padding:12px 16px}.alert-warning{border:1px solid #f9a82559;border-left:3px solid var(--accent-orange);border-radius:var(--radius-md);background:#f9a8251a;padding:12px 16px}.alert-info{border:1px solid #5b9eff4d;border-left:3px solid var(--accent-blue);border-radius:var(--radius-md);background:#5b9eff1a;padding:12px 16px}.alert-success{border:1px solid #10d98a4d;border-left:3px solid var(--accent-green);border-radius:var(--radius-md);background:#10d98a1a;padding:12px 16px}.glow-blue{box-shadow:var(--shadow-glow-blue)!important}.glow-purple{box-shadow:var(--shadow-glow-purple)!important}.glow-green{box-shadow:var(--shadow-glow-green)!important}.glass-blur{-webkit-backdrop-filter:blur(16px)saturate(180%)}.divider{border:none;border-top:1px solid var(--border-light);margin:16px 0}.divider-strong{border-top-color:var(--border)}.p-3{padding:12px}.p-4{padding:16px}.p-5{padding:20px}.p-6{padding:24px}.rounded{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-5{gap:20px}.gap-6{gap:24px}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.w-full{width:100%}.h-full{height:100%}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mb-5{margin-bottom:20px}.mb-6{margin-bottom:24px}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.ml-auto{margin-left:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.position-relative{position:relative}}.page-container{max-width:1680px;margin:0 auto;padding:28px 32px;animation:.25s fadeIn}.page-header{margin-bottom:28px}.page-title{color:var(--text-primary);letter-spacing:-.025em;font-size:26px;font-weight:800;line-height:1.2}.page-subtitle{color:var(--text-secondary);margin-top:5px;font-size:13.5px;line-height:1.5}.section-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.section-title{color:var(--text-primary);letter-spacing:-.01em;font-size:16px;font-weight:700}.section-subtitle{color:var(--text-secondary);margin-top:2px;font-size:12px}.grid-kpi{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.grid-2{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.grid-auto{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse-slow{0%,to{opacity:1}50%{opacity:.55}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes glow-pulse{0%,to{box-shadow:0 0 8px #8b5cf64d}50%{box-shadow:0 0 24px #8b5cf68c}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.animate-fade-in{animation:.25s forwards fadeIn}.animate-slide-in{animation:.25s forwards slideIn}.animate-slide-up{animation:.3s forwards slideUp}.animate-scale-in{animation:.2s forwards scaleIn}.animate-pulse-slow{animation:2.5s ease-in-out infinite pulse-slow}.animate-glow-pulse{animation:2s ease-in-out infinite glow-pulse}.animate-float{animation:3s ease-in-out infinite float}.animate-spin{animation:1s linear infinite spin}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.skeleton{background:linear-gradient(90deg, var(--bg-tertiary) 25%, #32324c99 50%, var(--bg-tertiary) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.6s ease-in-out infinite shimmer}.chat-bubble-ai{background:#8b5cf614;border:1px solid #8b5cf633;border-radius:4px 16px 16px;max-width:82%;padding:12px 16px;line-height:1.6}.chat-bubble-user{background:#5b9eff1a;border:1px solid #5b9eff33;border-radius:16px 4px 16px 16px;max-width:82%;margin-left:auto;padding:12px 16px;line-height:1.6}.recharts-tooltip-wrapper .recharts-default-tooltip{background:var(--bg-secondary)!important;border:1px solid var(--border)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-md)!important;padding:10px 14px!important}.recharts-cartesian-grid-horizontal line,.recharts-cartesian-grid-vertical line{opacity:.7;stroke:var(--border-light)!important}.recharts-text{fill:var(--text-secondary)!important;font-size:11px!important}.recharts-legend-item-text{color:var(--text-secondary)!important;font-size:12px!important}
