:root{--background:30 43% 99%;--foreground:214 40% 13%;--card:0 0% 100%;--card-foreground:214 40% 13%;--popover:0 0% 100%;--popover-foreground:214 40% 13%;--primary:218 100% 47%;--primary-foreground:0 0% 100%;--secondary:210 18% 94%;--secondary-foreground:214 40% 13%;--muted:210 15% 96%;--muted-foreground:210 20% 45%;--accent:210 100% 93%;--accent-foreground:218 100% 43%;--destructive:0 87% 35%;--destructive-foreground:0 0% 100%;--border:0 0% 85%;--input:210 13% 55%;--ring:218 100% 47%;--sap-shell:0 0% 100%;--sap-shell-text:214 40% 13%;--sap-list-hover:210 11% 92%;--sap-list-alt:210 15% 97%;--sap-label:210 20% 45%;--sap-warning:24 100% 45%;--sap-warning-bg:48 100% 92%;--sap-success:136 47% 29%;--sap-success-bg:82 67% 93%;--sap-info-bg:204 100% 94%;--sap-neutral:210 22% 60%;--sap-neutral-bg:210 11% 94%;--brand-slate:#36475a;--brand-green:#3a9b23;--c-background:#fbf9f8;--c-foreground:#131e29;--c-card:#fff;--c-primary:#0070f2;--c-primary-90:#0064d9;--c-secondary:#eaecee;--c-muted:#f5f6f7;--c-label:#556b82;--c-accent:#e3f0ff;--c-border:#d9d9d9;--c-input:#788fa6;--c-error:#aa0808;--c-error-bg:#ffeaf4;--c-error-border:#e90b0b;--c-warning:#e76500;--c-warning-bg:#fff8d6;--c-warning-border:#dd6100;--c-success:#256f3a;--c-success-bg:#f5fae5;--c-success-border:#30914c;--c-info:#0070f2;--c-info-bg:#e1f4ff;--c-neutral:#788fa6;--c-neutral-bg:#eff1f2;--font-sans:"Pretendard", "Pretendard Variable", "Nanum Gothic", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fw-light:300;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-extrabold:800;--fs-h1:3rem;--fs-h2:2rem;--fs-h3:1.5rem;--fs-h4:1.25rem;--fs-h5:1rem;--fs-h6:.875rem;--fs-body:.875rem;--fs-sm:.8125rem;--fs-xs:.75rem;--fs-label:.875rem;--fs-input:1rem;--lh-tight:1.2;--lh-snug:1.35;--lh-base:1.5;--text-display:var(--fw-bold) var(--fs-h1)/var(--lh-tight) var(--font-sans);--text-title:var(--fw-bold) var(--fs-h3)/var(--lh-snug) var(--font-sans);--text-section:var(--fw-semibold) var(--fs-h5)/var(--lh-snug) var(--font-sans);--text-card-title:var(--fw-semibold) var(--fs-h6)/var(--lh-snug) var(--font-sans);--text-body:var(--fw-regular) var(--fs-body)/var(--lh-base) var(--font-sans);--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--h-element:2.25rem;--h-control:2rem;--h-control-sm:1.75rem;--h-row:2rem;--sidebar-w:15rem;--sidebar-w-collapsed:3.5rem;--topbar-h:3rem;--radius-sm:.125rem;--radius:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-full:9999px;--shadow-shell:0 1px 0 0 #22365414;--shadow-card:0 0 0 1px #2236540f;--shadow-pop:0 4px 16px -2px #22365429, 0 2px 6px -1px #2236541a;--shadow-dialog:0 12px 40px -8px #22365447, 0 4px 12px -4px #22365429;--ring-width:1px;--ring-offset:1px}@font-face{font-family:Pretendard;src:url(/assets/PretendardVariable-CJuje-Rk.woff2)format("woff2");font-weight:300 800;font-display:swap}@font-face{font-family:Nanum Gothic;src:url(/assets/NanumGothic-D4b5Y4hl.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Nanum Gothic;src:url(/assets/NanumGothicBold-8CtetCpq.woff2)format("woff2");font-weight:700;font-display:swap}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:hsl(var(--background));color:hsl(var(--foreground));font-size:var(--fs-body);line-height:var(--lh-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100vh;overflow:hidden}a{color:hsl(var(--primary));text-decoration:none}a:hover{text-decoration:underline}.erp-btn{justify-content:center;align-items:center;gap:var(--space-2);white-space:nowrap;font-family:var(--font-sans);font-size:var(--fs-body);font-weight:var(--fw-medium);border-radius:var(--radius);height:var(--h-control);padding:0 var(--space-4);cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;line-height:1;transition:background-color .12s,color .12s,border-color .12s;display:inline-flex}.erp-btn:focus-visible{box-shadow:0 0 0 2px hsl(var(--ring)), 0 0 0 3px hsl(var(--background));outline:none}.erp-btn:disabled{pointer-events:none;opacity:.5}.erp-btn svg{flex-shrink:0;width:16px;height:16px}.erp-btn--default{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:hsl(var(--primary))}.erp-btn--default:hover{background:hsl(var(--primary) / .9)}.erp-btn--destructive{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground));border-color:hsl(var(--destructive))}.erp-btn--destructive:hover{background:hsl(var(--destructive) / .9)}.erp-btn--outline{background:hsl(var(--card));color:hsl(var(--foreground));border-color:hsl(var(--input))}.erp-btn--outline:hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.erp-btn--secondary{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground))}.erp-btn--secondary:hover{background:hsl(var(--secondary) / .8)}.erp-btn--ghost{color:hsl(var(--foreground));background:0 0}.erp-btn--ghost:hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.erp-btn--link{color:hsl(var(--primary));background:0 0;border:0;height:auto;padding:0}.erp-btn--link:hover{text-underline-offset:4px;text-decoration:underline}.erp-btn--sm{height:var(--h-control-sm);padding:0 var(--space-3);font-size:var(--fs-xs)}.erp-btn--lg{height:var(--h-element);padding:0 var(--space-6)}.erp-btn--icon{height:var(--h-control);width:var(--h-control);padding:0}.erp-btn--block{width:100%}.erp-input{height:var(--h-element);border-radius:var(--radius-sm);border:1px solid hsl(var(--input));background:hsl(var(--card));width:100%;padding:0 var(--space-3);font-family:var(--font-sans);font-size:var(--fs-input);color:hsl(var(--foreground));display:flex}.erp-input::placeholder{color:hsl(var(--muted-foreground) / .6)}.erp-input:focus-visible{border-color:hsl(var(--primary));box-shadow:0 0 0 1px hsl(var(--primary));outline:none}.erp-input:disabled,.erp-input[readonly]{border-color:hsl(var(--border));opacity:.8;cursor:not-allowed;background:#eaecee}.erp-input--sm{height:var(--h-control);font-size:var(--fs-sm)}.erp-label{font-size:var(--fs-label);font-weight:var(--fw-medium);color:hsl(var(--foreground));line-height:1.4}.erp-label__req{color:hsl(var(--destructive));margin-left:2px}.erp-check{appearance:none;border:1px solid hsl(var(--input));border-radius:var(--radius-sm);background:hsl(var(--card));cursor:pointer;flex:none;place-content:center;width:16px;height:16px;transition:background-color .12s,border-color .12s;display:inline-grid}.erp-check--radio{border-radius:var(--radius-full)}.erp-check:checked{background:hsl(var(--primary));border-color:hsl(var(--primary))}.erp-check:checked:after{content:""}.erp-check:not(.erp-check--radio):checked:after{background:hsl(var(--primary-foreground));clip-path:polygon(14% 47%,0 60%,40% 100%,100% 22%,86% 10%,38% 72%);width:9px;height:9px}.erp-check--radio:checked:after{background:hsl(var(--primary-foreground));border-radius:50%;width:6px;height:6px}.erp-check:focus-visible{box-shadow:0 0 0 2px hsl(var(--ring) / .4);outline:none}.erp-check:disabled{opacity:.5;cursor:not-allowed}.erp-switch{cursor:pointer;flex:none;align-items:center;width:36px;height:20px;display:inline-flex;position:relative}.erp-switch input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute}.erp-switch__track{border-radius:var(--radius-full);background:hsl(var(--input));transition:background-color .15s;position:absolute;inset:0}.erp-switch__thumb{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.erp-switch input:checked~.erp-switch__track{background:hsl(var(--primary))}.erp-switch input:checked~.erp-switch__thumb{transform:translate(16px)}.erp-switch input:disabled~.erp-switch__track{opacity:.5}.erp-select{appearance:none;height:var(--h-element);border-radius:var(--radius-sm);border:1px solid hsl(var(--input));background:hsl(var(--card));width:100%;padding:0 var(--space-8) 0 var(--space-3);font-family:var(--font-sans);font-size:var(--fs-input);color:hsl(var(--foreground));cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23556B82' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center}.erp-select:focus-visible{border-color:hsl(var(--primary));box-shadow:0 0 0 1px hsl(var(--primary));outline:none}.erp-card{border-radius:var(--radius);background:hsl(var(--card));color:hsl(var(--card-foreground));border:1px solid hsl(var(--border))}.erp-card__header{gap:var(--space-1);padding:var(--space-4);border-bottom:1px solid hsl(var(--border));background:hsl(var(--muted) / .5);flex-direction:column;display:flex}.erp-card__title{font-size:var(--fs-h6);font-weight:var(--fw-semibold);letter-spacing:-.01em}.erp-card__desc{font-size:var(--fs-sm);color:hsl(var(--muted-foreground))}.erp-card__body{padding:var(--space-4)}.erp-card__footer{align-items:center;gap:var(--space-2);padding:0 var(--space-4) var(--space-4);display:flex}.erp-badge{border-radius:var(--radius-sm);padding:1px var(--space-2);font-size:var(--fs-xs);font-weight:var(--fw-medium);white-space:nowrap;border:1px solid;align-items:center;gap:4px;line-height:1.4;display:inline-flex}.erp-badge--default{border-color:hsl(var(--primary) / .3);background:hsl(var(--primary) / .1);color:hsl(var(--primary))}.erp-badge--secondary{border-color:hsl(var(--border));background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.erp-badge--outline{border-color:hsl(var(--border));color:hsl(var(--foreground));background:0 0}.erp-badge--destructive{border-color:var(--c-error-border);background:var(--c-error-bg);color:var(--c-error)}.erp-badge--success{border-color:var(--c-success-border);background:var(--c-success-bg);color:var(--c-success)}.erp-badge--warning{border-color:var(--c-warning-border);background:var(--c-warning-bg);color:var(--c-warning)}.erp-badge--info{border-color:var(--c-info);background:var(--c-info-bg);color:var(--c-info)}.erp-badge--neutral{border-color:var(--c-neutral);background:var(--c-neutral-bg);color:var(--c-neutral)}.erp-badge__dot{background:currentColor;border-radius:50%;width:6px;height:6px}.erp-avatar{border-radius:var(--radius-full);background:hsl(var(--secondary));color:hsl(var(--foreground));font-weight:var(--fw-semibold);flex:none;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.erp-avatar img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.erp-table-wrap{border-radius:var(--radius);border:1px solid hsl(var(--border));background:hsl(var(--card));overflow:hidden}.erp-table{border-collapse:collapse;width:100%;font-size:var(--fs-body)}.erp-table thead th{height:var(--h-row);padding:0 var(--space-2);text-align:left;font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:hsl(var(--foreground));background:hsl(var(--muted) / .6);border-bottom:1px solid hsl(var(--border));white-space:nowrap}.erp-table tbody td{padding:var(--space-1) var(--space-2);border-bottom:1px solid hsl(var(--border));color:hsl(var(--foreground))}.erp-table tbody tr:last-child td{border-bottom:0}.erp-table tbody tr:hover{background:hsl(var(--sap-list-hover))}.erp-table--striped tbody tr:nth-child(2n){background:hsl(var(--sap-list-alt))}.erp-table--striped tbody tr:nth-child(2n):hover{background:hsl(var(--sap-list-hover))}.erp-table .num{text-align:right;font-variant-numeric:tabular-nums}.erp-table tbody tr[data-selected]{background:hsl(var(--accent));box-shadow:inset 2px 0 0 0 hsl(var(--primary))}.erp-table tbody tr[data-selected]:hover{background:hsl(var(--accent))}.erp-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.erp-table th .th-inner{align-items:center;gap:4px;display:inline-flex}.erp-metric{gap:var(--space-1);padding:var(--space-4);border-radius:var(--radius);border:1px solid hsl(var(--border));background:hsl(var(--card));flex-direction:column;display:flex}.erp-metric__label{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:hsl(var(--muted-foreground))}.erp-metric__value{font-size:var(--fs-h3);font-weight:var(--fw-bold);letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}.erp-metric__value .unit{font-size:var(--fs-h6);font-weight:var(--fw-semibold);color:hsl(var(--muted-foreground));margin-left:4px}.erp-metric__delta{font-size:var(--fs-xs);font-weight:var(--fw-medium);align-items:center;gap:3px;display:inline-flex}.erp-metric__delta--up{color:var(--c-success)}.erp-metric__delta--down{color:var(--c-error)}.erp-metric__delta--flat{color:hsl(var(--muted-foreground))}.erp-tabs{border-bottom:1px solid hsl(var(--border));gap:0;display:flex}.erp-tab{appearance:none;padding:var(--space-2) var(--space-4);font-family:var(--font-sans);font-size:var(--fs-body);font-weight:var(--fw-medium);color:hsl(var(--muted-foreground));cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;transition:color .12s,border-color .12s}.erp-tab:hover{color:hsl(var(--foreground))}.erp-tab--active{color:hsl(var(--primary));border-bottom-color:hsl(var(--primary))}.erp-layout{flex-direction:column;height:100vh;display:flex;overflow:hidden}.erp-body{flex:1;display:flex;overflow:hidden}.erp-sidebar{background:hsl(var(--card));border-right:1px solid hsl(var(--border));flex-direction:column;flex:none;height:100%;transition:width .2s ease-in-out;display:flex;overflow:hidden}.erp-sidebar--open{width:var(--sidebar-w)}.erp-sidebar--collapsed{width:var(--sidebar-w-collapsed)}.erp-sidebar__brand{padding:0 var(--space-3);min-height:var(--topbar-h);border-bottom:1px solid hsl(var(--border));align-items:center;gap:var(--space-2);display:flex}.erp-sidebar__brand-text{font-size:var(--fs-h6);font-weight:var(--fw-semibold);color:hsl(var(--foreground));white-space:nowrap}.erp-sidebar__nav{padding:var(--space-2) 0;flex:1;overflow:hidden auto}.erp-sidebar__module-btn{width:calc(100% - 8px);padding:var(--space-2) var(--space-3);border-radius:var(--radius);cursor:pointer;font-family:var(--font-sans);font-size:var(--fs-body);color:hsl(var(--foreground));background:0 0;border:0;justify-content:space-between;align-items:center;margin:0 4px;transition:background .12s;display:flex}.erp-sidebar__module-btn:hover,.erp-sidebar__module-btn--active{background:hsl(var(--accent));color:hsl(var(--accent-foreground));font-weight:var(--fw-semibold)}.erp-sidebar--collapsed .erp-sidebar__module-btn{padding:var(--space-2) 0;justify-content:center}.erp-sidebar--collapsed .erp-sidebar__module-btn--active{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.erp-sidebar--collapsed .erp-sidebar__nav{padding:var(--space-1) 0}.erp-sidebar__children{margin:0 4px 4px}.erp-sidebar__child-btn{width:100%;padding:var(--space-1) var(--space-3) var(--space-1) calc(var(--space-3) + 20px);border-radius:0 var(--radius) var(--radius) 0;cursor:pointer;font-family:var(--font-sans);font-size:var(--fs-body);color:hsl(var(--muted-foreground));text-align:left;white-space:nowrap;background:0 0;border:0;border-left:2px solid #0000;transition:color .12s,border-color .12s,background .12s;display:block}.erp-sidebar__child-btn:hover{color:hsl(var(--foreground));background:hsl(var(--muted))}.erp-sidebar__child-btn--active{color:hsl(var(--primary));border-left-color:hsl(var(--primary));font-weight:var(--fw-medium)}.erp-sidebar__toggle-tab{top:var(--space-4);z-index:10;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:0 var(--radius-sm) var(--radius-sm) 0;cursor:pointer;width:28px;height:28px;color:hsl(var(--muted-foreground));border-left:none;justify-content:center;align-items:center;transition:background .12s;display:flex;position:absolute;right:-14px;box-shadow:2px 0 6px #00000014}.erp-sidebar__toggle-tab:hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.erp-topbar{height:var(--topbar-h);padding:0 var(--space-4);background:hsl(var(--card));border-bottom:1px solid hsl(var(--border));box-shadow:var(--shadow-shell);justify-content:space-between;align-items:center;gap:var(--space-4);flex:none;display:flex}.erp-topbar__left,.erp-topbar__right{align-items:center;gap:var(--space-3);display:flex}@media (width>=881px){.erp-topbar__hamburger{display:none!important}}.erp-page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid hsl(var(--border));margin-bottom:var(--space-4);display:flex}.erp-page-header__left{flex-direction:column;flex:auto;gap:3px;min-width:0;display:flex}.erp-page-header__module{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:hsl(var(--muted-foreground));letter-spacing:.02em}.erp-page-header__title{font-size:var(--fs-h4);font-weight:var(--fw-bold);color:hsl(var(--foreground));line-height:1.25}.erp-page-header__desc{font-size:var(--fs-sm);color:hsl(var(--muted-foreground));margin-top:2px}.erp-page-header__actions{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.erp-content{padding:var(--space-4) var(--space-6);background:hsl(var(--background));flex:1;overflow-y:auto}.login-wrap{height:100vh;display:flex;overflow:hidden}.login-hero{min-width:380px;padding:var(--space-10) var(--space-8);color:#fff;background:radial-gradient(at 60% 40%,#1a2e46 0%,#14202f 55%,#0d1720 100%);flex-direction:column;flex:1 1 0;align-items:flex-start;display:flex;position:relative;overflow-y:auto}@media (width<=880px){.login-hero{display:none}}.hero-head{flex-direction:column;flex:none;width:100%;max-width:540px;display:flex}.hero-eyebrow{font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:.1em;text-transform:uppercase;color:hsl(var(--primary) / .8);margin-bottom:var(--space-3)}.hero-title{font-size:var(--fs-h2);font-weight:var(--fw-bold);line-height:var(--lh-tight);margin-bottom:var(--space-4)}.hero-sub{font-size:var(--fs-body);opacity:.75;line-height:var(--lh-base);max-width:40ch}.hero-foot{font-size:var(--fs-xs);opacity:.5}.hexstage{aspect-ratio:1;flex-shrink:0;align-self:center;width:min(540px,100%);margin:auto 0;position:relative;container-type:inline-size}.hex-lines{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.hex-lines line{stroke:#ffffff26;stroke-width:.4px}.hex-lines line.flow{stroke:hsl(var(--primary) / .7);stroke-dasharray:8 6;animation:3s linear infinite dash-flow}@keyframes dash-flow{to{stroke-dashoffset:-28px}}.hex-core{justify-content:center;align-items:center;width:42cqi;height:42cqi;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hex-core img{-o-object-fit:contain;object-fit:contain;border-radius:50%;width:100%;height:100%;animation:4s ease-in-out infinite core-glow}@keyframes core-glow{0%,to{box-shadow:0 0 0 2px hsl(var(--primary) / .2), 0 0 8px hsl(var(--primary) / .12)}50%{box-shadow:0 0 0 3px hsl(var(--primary) / .55), 0 0 28px hsl(var(--primary) / .42)}}.core-ring{border:1.5px solid hsl(var(--primary) / .4);border-radius:50%;animation:12s linear infinite core-spin;position:absolute;inset:-25%}@keyframes core-spin{to{transform:rotate(360deg)}}.hexnode{flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;transform:translate(-50%,-50%)}.hexnode .tile{background:hsl(var(--primary) / .18);border:1px solid hsl(var(--primary) / .35);clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);color:#fff;justify-content:center;align-items:center;width:14.07cqi;height:15.56cqi;animation:.5s both tile-pop,3.6s ease-in-out infinite tile-pulse;display:flex}@keyframes tile-pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes tile-pulse{0%,to{opacity:.72;filter:drop-shadow(0 0 3px hsl(var(--primary) / .25))}50%{opacity:1;filter:drop-shadow(0 0 14px hsl(var(--primary) / .8))}}.tile-label{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:#fffc;white-space:nowrap}.login-aside{width:440px;padding:var(--space-8);background:hsl(var(--background));flex:0 0 440px;justify-content:center;align-items:center;display:flex}@media (width<=880px){.login-aside{flex:1;width:100%}}.or-divider{align-items:center;gap:var(--space-3);display:flex}.or-divider:before,.or-divider:after{content:"";background:hsl(var(--border));flex:1;height:1px}.or-divider span{font-size:var(--fs-xs);color:hsl(var(--muted-foreground));white-space:nowrap}@media (prefers-reduced-motion:reduce){.hex-lines line.flow,.hex-core img,.core-ring,.hexnode .tile{animation:none}}
