@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap";.loginPage{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:url(/assets/background-DlCylWp1.jpg) center/cover no-repeat;position:relative}.loginPage:before{content:"";position:absolute;inset:0;background:#ffffff80}.loginBox{width:380px;max-width:100%;display:flex;flex-direction:column;align-items:center;position:relative;z-index:1}.logo{margin-bottom:28px}.logo img{width:320px;height:auto;display:block}.loginWrap{width:380px;max-width:100%;display:flex;flex-direction:column;align-items:center;gap:14px;position:relative;z-index:1;background:#fff;padding:28px;border-radius:14px;box-shadow:0 16px 40px #0f172a1f}.loginForm{width:100%;display:flex;flex-direction:column;gap:10px}.loginForm input{width:100%;padding:12px;border:1px solid #cfcfcf;border-radius:10px;font-size:14px;outline:none;box-sizing:border-box}.loginForm input:focus{border-color:#2f6fed;box-shadow:0 0 0 2px #2f6fed26}.loginForm input[name=loginId]{padding-left:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21a8 8 0 0 0-16 0'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:14px 50%;background-size:18px 18px}.loginForm input[name=password]{padding-left:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:14px 50%;background-size:18px 18px}.loginBtn{background:#2f6fed;color:#fff;border:none;height:42px;border-radius:10px;font-weight:500;cursor:pointer;transition:background .2s ease,transform .2s ease}.loginBtn:hover{background:#1e56c5}.loginBtn:active{transform:translateY(1px)}.btn.ghost.box{display:flex;align-items:center;justify-content:center;height:42px;border:1px solid #d6d9de;border-radius:10px;background:#fff;color:inherit;text-decoration:none;font-weight:500}.signupPage{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:url(/assets/background-DlCylWp1.jpg) center/cover no-repeat;position:relative}.signupPage:before{content:"";position:absolute;inset:0;background:#ffffff80}.signupBox{width:430px;max-width:100%;display:flex;flex-direction:column;align-items:center;position:relative;z-index:1}.logo{margin-bottom:24px}.signupWrap{width:430px;max-width:100%;display:flex;flex-direction:column;align-items:center;gap:14px;position:relative;z-index:1;background:#fff;padding:28px;border-radius:12px;box-shadow:0 30px 80px #0000001f}.signupForm{width:100%;display:flex;flex-direction:column;gap:10px}.signupForm input,.signupForm select{width:100%;padding:12px;border:1px solid #cfcfcf;border-radius:10px;font-size:14px;outline:none;box-sizing:border-box}.signupForm input::placeholder{color:#9aa3af}.signupForm input:focus,.signupForm select:focus{border-color:#2f6fed;box-shadow:0 0 0 2px #2f6fed26}.signupForm input[name=loginId],.signupForm input[name=password],.signupForm input[name=passwordConfirm],.signupForm input[name=name],.signupForm input[name=email],.signupForm input[name=phone],.signupForm input[name=companyCode],.signupForm input[name=employeeNo],.signupForm select[name=department]{padding-left:44px;background-repeat:no-repeat;background-position:14px 50%;background-size:18px 18px}.signupForm input[name=loginId]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21a8 8 0 0 0-16 0'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E")}.signupForm input[name=password]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E")}.signupForm input[name=passwordConfirm]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E")}.signupForm input[name=name]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21a8 8 0 0 0-16 0'/%3E%3Cpath d='M12 11a4 4 0 1 0-4-4 4 4 0 0 0 4 4z'/%3E%3C/svg%3E")}.signupForm input[name=email]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16v16H4z' fill='none'/%3E%3Cpath d='M22 6l-10 7L2 6'/%3E%3C/svg%3E")}.signupForm input[name=phone]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.8 19.8 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.08 4.18 2 2 0 0 1 4.06 2h3a2 2 0 0 1 2 1.72c.12.86.3 1.7.54 2.52a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.56-1.06a2 2 0 0 1 2.11-.45c.82.24 1.66.42 2.52.54A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E")}.signupForm input[name=companyCode]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M7 7h10M7 11h10M7 15h6'/%3E%3C/svg%3E")}.signupForm input[name=employeeNo]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16v16H4z' fill='none'/%3E%3Cpath d='M9 9h6M9 13h6M9 17h6'/%3E%3C/svg%3E")}.signupForm select[name=department]{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:14px 50%}.signupBtn{width:100%;background:#2f6fed;color:#fff;border:none;height:42px;border-radius:6px;font-weight:500;cursor:pointer;transition:background .2s ease,transform .1s ease}.signupBtn:hover{background:#1e56c5}.signupBtn:active{transform:translateY(1px)}.backLink{margin-top:6px;font-size:13px;color:#111;text-decoration:none;text-align:center}.backLink:hover{text-decoration:underline}.fieldRow{display:flex;gap:10px}.fieldRow input{flex:1}.checkBtn{min-width:88px;padding:0 12px;border-radius:10px;border:1px solid #2F6FED;background:#fff;color:#2f6fed;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .2s ease}.checkBtn:hover:not(:disabled){background:#2f6fed;color:#fff}.checkBtn:disabled{opacity:.6;cursor:default}.dashboard-grid{display:grid;gap:16px}.dashboard-grid.with-top-space{margin-top:16px}.dashboard-grid-top,.dashboard-grid-middle,.dashboard-grid-bottom{grid-template-columns:1fr 1fr}.panel{background:var(--panel);border:1px solid rgba(15,23,42,.08);border-radius:12px;box-shadow:0 6px 18px #0f172a0f;overflow:hidden}.panel-head{padding:12px 14px;border-bottom:1px solid rgba(15,23,42,.08);display:flex;align-items:center;justify-content:space-between;gap:10px;background:linear-gradient(180deg,var(--panel2),var(--panel));min-height:64px}.panel-title{margin:0;font-size:18px;font-weight:800;color:#0f172ad9}.panel-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.panel-body{padding:14px}.panel-body-chart{padding:10px 12px 12px;display:flex;flex-direction:column}.panel-body-table-sm{padding:12px}.panel-chart,.panel-chart-sm{min-height:420px}.chip{height:30px;padding:0 10px;border-radius:999px;border:1px solid rgba(15,23,42,.1);background:#fff;color:#0f172ac7;font-size:12px;cursor:pointer}.chip:hover{background:#0f172a05}.chip.active{border-color:#2563eb40;background:#2563eb14;color:#1d4ed8f2;font-weight:800}.badge{display:inline-flex;align-items:center;height:25px;padding:0 10px;border-radius:999px;border:1px solid rgba(15,23,42,.1);background:#0f172a08;color:#0f172ab8;font-size:12px;font-weight:800}.btn{height:32px;padding:0 12px;border-radius:10px;border:1px solid rgba(15,23,42,.1);background:#fff;color:#0f172ad1;font-size:12px;font-weight:700;cursor:pointer}.btn:hover{background:#0f172a05}.chart-box{width:100%;height:340px}.chart-box-top-legend{height:320px}.chart-legend{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:8px}.chart-legend-top{justify-content:center;margin-top:0;margin-bottom:8px}.legend-item{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#475569}.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0}.legend-blue{background:#2563eb}.legend-red{background:#ef4444}.distribution-panel{display:flex;flex-direction:column;gap:18px}.distribution-panel-row{display:grid;grid-template-columns:340px 1fr;gap:24px;align-items:center;min-height:360px}.distribution-chart-side{display:flex;align-items:center;justify-content:center;height:100%}.donut-wrap{position:relative;width:100%;height:240px}.donut-wrap-lg{width:320px;height:320px;margin:0 auto}.distribution-info-side{display:flex;align-items:center;height:100%}.distribution-legend{display:flex;flex-direction:column;gap:12px}.distribution-legend-vertical{width:100%;display:flex;flex-direction:column;gap:0}.distribution-legend-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 2px;background:transparent;border:0;border-bottom:1px solid rgba(15,23,42,.08);border-radius:0;box-shadow:none}.distribution-legend-item:first-child{padding-top:4px}.distribution-legend-item:last-child{border-bottom:0;padding-bottom:4px}.distribution-legend-left{display:flex;align-items:center;gap:12px;min-width:0}.distribution-texts{display:flex;flex-direction:column;gap:4px;min-width:0}.distribution-legend-right{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:2px;flex-shrink:0}.distribution-name{font-size:15px;font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.distribution-ratio{font-size:13px;font-weight:700;color:#111827}.distribution-amount{font-size:15px;font-weight:700;color:#64748b}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.summary-card{border:1px solid rgba(15,23,42,.08);border-radius:16px;padding:16px;min-height:132px;position:relative;overflow:hidden;background:#fff}.kpi-card{display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 4px 12px #0f172a0a;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.kpi-card:hover{border-color:#0f172a24;box-shadow:0 10px 24px #0f172a14;transform:translateY(-1px)}.kpi-card:after{content:"";position:absolute;inset:auto 0 0;height:3px;opacity:.95}.kpi-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.kpi-card-label{font-size:13px;font-weight:800;color:#475569;letter-spacing:-.01em}.kpi-card-icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.kpi-card-danger .kpi-card-icon{color:#dc2626}.kpi-card-warn .kpi-card-icon{color:#d97706}.kpi-card-info .kpi-card-icon{color:#2563eb}.kpi-card-neutral .kpi-card-icon{color:#334155}.kpi-card-value{margin-top:12px;font-size:30px;font-weight:800;letter-spacing:-.03em;line-height:1.06}.kpi-card-bottom{margin-top:12px}.kpi-card-danger:after{background:linear-gradient(90deg,#ef4444,#f87171)}.kpi-card-warn:after{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.kpi-card-info:after{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.kpi-card-neutral:after{background:linear-gradient(90deg,#0f172a,#334155)}.summary-value{margin-top:8px;font-size:28px;font-weight:800;letter-spacing:-.02em;line-height:1.1}.summary-sub{font-size:12px;color:#64748b;line-height:1.45}.summary-value.danger{color:var(--danger)}.summary-value.warn{color:var(--warn)}.summary-value.info{color:var(--info)}.summary-value.neutral{color:#111827}.table-wrap{overflow:auto;border-radius:12px;border:1px solid rgba(15,23,42,.08)}.table{width:100%;border-collapse:collapse;font-size:12px;background:#fff}.table th,.table td{padding:10px;text-align:left}.table thead th{background:#0f172a08;border-bottom:1px solid rgba(15,23,42,.16);border-right:1px solid rgba(15,23,42,.14);color:#0f172ab8;font-weight:800}.right{text-align:right}.status{display:inline-flex;align-items:center;justify-content:center;height:22px;padding:0 10px;border-radius:999px;font-size:11px;font-weight:800;border:1px solid rgba(15,23,42,.1);background:#fff;color:#0f172ac7}.status.danger{border-color:#dc262640;background:#dc26261a;color:#b91c1c}.status.warn{border-color:#f59e0b40;background:#f59e0b1f;color:#b45309}.status.info{border-color:#2563eb38;background:#2563eb1a;color:#1d4ed8}.status.neutral{border-color:#10b98159;background:#10b9811a;color:#10b981f2}.ui-center{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60vh;gap:12px}.ui-message{font-size:14px;color:#64748b}.ui-error-message{font-size:14px;color:#ef4444;font-weight:600}.spinner{width:42px;height:42px;border:4px solid #e5e7eb;border-top:4px solid #2563eb;border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.panel-title-row{display:flex;align-items:center;gap:10px;min-width:0}.panel-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid #dbe2ea;border-radius:999px;background:#f8fafc;color:#475569;font-size:12px;font-weight:700;line-height:1;white-space:nowrap}.panel-badge-icon{width:13px;height:13px;color:#64748b;flex-shrink:0}.panel-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 14px;border:1px solid #d6dbe3;border-radius:999px;background:#fff;color:#334155;font-size:13px;font-weight:700;line-height:1;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}.panel-action-btn:hover{background:#f8fafc;border-color:#c5ced8;box-shadow:0 4px 12px #0f172a0f}.panel-action-btn:active{transform:translateY(1px)}.panel-action-btn:focus-visible{outline:none;border-color:#94a3b8;box-shadow:0 0 0 4px #94a3b82e}.panel-action-icon{width:15px;height:15px;flex-shrink:0}@media(max-width:1280px){.dashboard-grid-top,.dashboard-grid-middle{grid-template-columns:1fr}.distribution-panel-row{grid-template-columns:1fr;gap:18px}.distribution-chart-side,.distribution-info-side{justify-content:center}.distribution-info-side{width:100%}}@media(max-width:860px){.summary-grid{grid-template-columns:1fr}}@media(max-width:768px){.panel-title-row{gap:8px}.panel-badge{padding:3px 8px;font-size:11px}.panel-action-btn{min-height:36px;padding:0 12px;font-size:12px}.summary-card{min-height:120px;padding:14px}.kpi-card-icon{width:32px;height:32px;border-radius:10px}.kpi-card-value{font-size:26px}}@media(max-width:600px){.chart-box{height:300px}.donut-wrap{height:220px}.donut-wrap-lg{width:260px;height:260px}.distribution-name,.distribution-amount{font-size:14px}.summary-value,.kpi-card-value{font-size:24px}.chart-box-top-legend{height:280px}}.page-grid{display:grid;grid-template-columns:1fr 320px;gap:16px;align-items:start}.page-grid.one-col{grid-template-columns:1fr}.filter-panel{position:sticky;top:16px}.filter-panel .panel-body{padding:14px}.filter-stack{display:flex;flex-direction:column;gap:12px}.input{width:100%;height:40px;border-radius:10px;border:1px solid rgba(15,23,42,.14);padding:0 10px;background:#fff;outline:none;font-size:13px}.input:focus{border-color:#2563eb66;box-shadow:0 0 0 3px #2563eb1a}input[type=date]{font-family:inherit;font-size:13px}input[type=date]::-webkit-calendar-picker-indicator{opacity:.55}.check-group{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.check{display:flex;align-items:center;gap:8px;font-size:12px;color:#0f172abf}.check input{width:16px;height:16px;accent-color:var(--primary)}.date-range{display:flex;align-items:center;gap:8px;width:100%}.range-tilde{color:#0f172a8c;font-size:12px;font-weight:700;flex:0 0 auto}.date-range .input{min-width:0}.filter-footer{margin-top:14px;padding-top:12px;border-top:1px solid rgba(15,23,42,.1);display:flex;gap:8px;justify-content:flex-end;align-items:center}.filter-footer .btn{height:40px}.table th,.table td{border-right:1px solid rgba(15,23,42,.1);border-bottom:1px solid rgba(15,23,42,.1)}.table th:last-child,.table td:last-child{border-right:0}.table thead th{border-bottom:1px solid rgba(15,23,42,.16);border-right:1px solid rgba(15,23,42,.14)}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#0f172a06}#applyFilterBtn{background:var(--primary);color:#fff;font-size:14px;border:1px solid var(--primary);transition:background .15s ease,box-shadow .15s ease,transform .05s ease}#applyFilterBtn:hover{background:#2563ebe6;box-shadow:0 4px 12px #2563eb40}#applyFilterBtn:active{transform:translateY(1px);box-shadow:0 2px 6px #2563eb40}#resetFilterBtn{background:#fff;font-size:14px;color:#0f172aa6;border:1px solid rgba(15,23,42,.18)}#resetFilterBtn:hover{background:#0f172a0a}#resetFilterBtn:active{transform:translateY(1px);box-shadow:0 2px 6px #2563eb40}.memo-btn{border:1px solid rgba(15,23,42,.16);background:#fff;padding:6px 10px;border-radius:10px;font-size:12px;cursor:pointer}.memo-btn:hover{border-color:#0f172a47}.memo-btn:active{transform:translateY(1px);box-shadow:0 2px 6px #2563eb40}@media(max-width:980px){.page-grid{grid-template-columns:1fr}.filter-panel{position:static}.filter-footer{justify-content:flex-start}}@media(max-width:600px){.date-range{flex-direction:column;align-items:stretch}.range-tilde{display:none}}.modal-backdrop{position:fixed;inset:0;background:#02061773;display:flex;align-items:center;justify-content:center;z-index:9999;padding:18px}.modal{width:min(92vw,560px);background:#fff;border:1px solid rgba(15,23,42,.14);border-radius:16px;box-shadow:0 20px 60px #02061740;max-height:calc(100vh - 36px);overflow:hidden}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid rgba(15,23,42,.1)}.modal-title{font-size:14px;color:#0f172ae6}.modal-x{border:none;background:transparent;cursor:pointer;font-size:16px;line-height:1;color:#0f172ab3}.modal-body{padding:14px;max-height:calc(100vh - 124px)}.modal-meta{display:grid;grid-template-columns:120px 1fr;gap:6px 60px;margin-bottom:12px;white-space:nowrap}.modal-table-wrap{max-height:260px;overflow-y:auto}.kv .k,.kv .k-type{font-size:12px;color:#0f172a8c;margin-bottom:4px}.kv .v{font-size:13px;color:#0f172ae6}.modal-memo{border:1px solid rgba(15,23,42,.1);border-radius:12px;padding:12px;background:#f8fafce6;font-size:13px;line-height:1.5;color:#0f172ae0;white-space:pre-wrap}.modal-wide{width:min(980px,94vw)}.form-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.form-section{border:1px solid rgba(15,23,42,.1);border-radius:14px;padding:12px;background:#f8fafcd9}.modal-foot{padding:5px 10px;border-top:1px solid rgba(15,23,42,.1);display:flex;justify-content:flex-end;gap:10px}.modal-foot .btn{padding:8px 16px;font-size:13px;border-radius:10px}.section-title{font-size:12px;color:#0f172aa6;margin-bottom:10px}.textarea{resize:vertical;min-height:120px}.panel-actions{display:flex;align-items:center;gap:10px;flex-wrap:nowrap}.panel-head .panel-actions .btn:not(.primary){height:34px;padding:0 12px;font-size:13px;border-radius:999px;border:1px solid rgba(15,23,42,.16);background:#fff;box-shadow:0 1px 2px #0206170f}.panel-head .panel-actions .btn:not(.primary):hover{background:#0f172a0a}.panel-head .panel-actions .btn:not(.primary):active{transform:translateY(1px)}.panel-head .panel-actions .badge{height:28px;display:inline-flex;align-items:center}.input:disabled{background:#0f172a0a;color:#0f172a8c;cursor:not-allowed}.modal-line-edit{width:600px}.line-edit-grid{display:grid;grid-template-columns:160px minmax(0,1fr);gap:14px;align-items:start}.line-edit-grid .field{margin-top:0}.line-edit-grid .textarea{min-height:120px;resize:vertical}.form-grid.form-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 18px}.form-actions .btn{width:auto;height:40px}@media(max-width:1200px){.form-grid.form-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.form-grid.form-grid-3{grid-template-columns:1fr}}.form-section{padding:14px;border:1px solid rgba(15,23,42,.1);border-radius:14px;background:#ffffffbf}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid rgba(15,23,42,.08)}.section-title{font-size:13px;color:#0f172acc}.section-sub{font-size:12px;color:#0f172a73}.field .filter-label{font-size:12px;font-weight:800;color:#0f172ac7;margin-top:10px;margin-bottom:10px;white-space:nowrap}.helper{margin-top:6px;font-size:12px;color:#0f172a80}.input.textarea{height:110px;padding-top:10px;resize:vertical}.form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:14px;border-top:1px solid rgba(15,23,42,.1);margin-top:14px}:root{--layout-bg:#2b3442}.layout{min-height:100vh;display:grid;grid-template-rows:auto 1fr}.body{display:grid;grid-template-columns:240px 1fr;min-height:0}.topbar{display:flex;align-items:center;justify-content:space-between;padding:4px 14px;height:52px;background:var(--layout-bg);color:#fffffff2;border-bottom:0}.topbar-left{display:flex;align-items:center;gap:12px}.brand-logo{margin-top:17px;width:auto;height:150px}.topbar-right{display:flex;align-items:center;gap:8px}.userbox{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:8px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1)}.user-avatar{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-weight:800;font-size:12px;background:#ffffff1f;color:#fff}.user-meta{line-height:1.1}.user-role{font-size:11px;font-weight:700;color:#ffffffe6}.user-company{font-size:10px;color:#ffffffb3}.logout-btn{font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;height:30px;padding:0 12px;border-radius:8px;cursor:pointer;transition:opacity .2s ease;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:#ffffffeb}.logout-btn:hover{background:#ffffff1f}.sidebar{background:var(--layout-bg);border-right:0;padding:14px 12px;overflow:auto;box-shadow:none}.menu{display:grid}.menu-group{padding:10px;border-radius:14px;background:#ffffff0f;border:0;box-shadow:inset 0 0 0 1px #ffffff12}.menu-group+.menu-group{margin-top:16px}.menu-title-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;margin-bottom:6px;border-radius:10px;background:#00000026;border:0;outline:0;font-weight:700;font-size:13px;letter-spacing:.2px;color:#ffffffd1;cursor:pointer;text-align:left;appearance:none;-webkit-appearance:none}.menu-title-btn:hover{background:#00000038;color:#fff}.menu-title-btn .chev{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:6px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);font-size:11px;line-height:1;opacity:.9;transform:rotate(0);transition:transform .15s ease}.menu-title-btn .chev.open{transform:rotate(90deg)}.menu-item{position:relative;display:flex;align-items:center;height:32px;padding:0 10px 0 28px;font-weight:500;font-size:13px;color:#ffffffb8;border-radius:8px}.menu-item:hover{background:#ffffff0f;color:#ffffffeb}.menu-item.active{background:#ffffff17;color:#fff;font-weight:700}.menu-item.active:before{content:"";position:absolute;left:10px;top:6px;bottom:6px;width:3px;border-radius:999px;background:#fffffff2}.main{background:var(--bg);min-height:0}.main-inner{padding:16px}.menu-item,.menu-title-left{display:flex;align-items:center;gap:8px}.nav-icon-wrap{width:16px;height:16px;flex:0 0 16px;display:inline-flex;align-items:center;justify-content:center}.nav-icon{width:16px;height:16px;color:#fffc}.menu-item.active .nav-icon,.menu-title-btn[aria-expanded=true] .nav-icon{color:#fff}.nav-dot{width:5px;height:5px;border-radius:999px;background:#ffffff59;flex:0 0 5px;margin-left:2px}.menu-item.active .nav-dot{background:#ffffffbf}@media(max-width:980px){.body{grid-template-columns:1fr}.sidebar{border-bottom:0;box-shadow:none;overflow:visible;padding:12px}.menu-group{background:#ffffff0f;box-shadow:inset 0 0 0 1px #ffffff0f;padding:10px}.menu-group+.menu-group{margin-top:0}.menu-item{padding-left:24px}.menu-item.active:before{left:8px}}@media(max-width:600px){.topbar{flex-direction:column;align-items:stretch;gap:8px;height:auto;padding:6px 12px}.topbar-right{justify-content:space-between}}*,*:before,*:after{box-sizing:border-box}html{overflow-y:scroll}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans KR,Arial,sans-serif;font-size:14px;line-height:1.4;color:#111;background:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input,textarea,select,button{font-family:inherit;font-size:inherit;font-weight:400;line-height:1.4;color:inherit}textarea{resize:vertical}:root{--bg:#f3f5f8;--panel:#ffffff;--panel2:#fbfcfe;--text:#0f172a;--muted:rgba(15,23,42,.62);--line:rgba(15,23,42,.1);--shadow:0 10px 26px rgba(15,23,42,.08);--radius:14px;--bar:#334155;--bar-dark:#334155;--side:#374151;--primary:#2563eb;--danger:#dc2626;--warn:#f59e0b;--info:#0284c7}.table{table-layout:fixed;width:100%}.table th,.table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:43px}.col-memo{text-align:center}.coli-status{width:60px}.coli-barcode{width:140px}.coli-codename{width:100px}.coli-name{width:190px}.coli-location{width:110px}.coli-category{width:80px}.coli-type{width:50px}.coli-spec{width:190px}.coli-unit{width:40px}.coli-memo{width:80px}.coli-manage,.colv-status{width:60px}.colv-code{width:160px}.colv-location{width:120px}.colv-ceo{width:70px}.colv-phone{width:110px}.colv-email{width:180px}.colv-bizno{width:100px}.colv-address{width:230px}.colv-memo{width:80px}.colv-manage{width:60px}.colc-status{width:62px}.colc-code{width:110px}.colc-name,.colc-spec{width:190px}.colc-unit{width:50px}.colc-qty,.colc-usage{width:70px}.colc-warehouse{width:60px}.colc-date{width:130px}.cols-status{width:60px}.cols-warehouse,.cols-code{width:120px}.cols-name,.cols-spec{width:190px}.cols-unit{width:50px}.cols-qty,.cols-usage,.cols-safety,.cols-shortage{width:70px}.coll-status{width:61px}.coll-code{width:100px}.coll-name,.coll-spec{width:240px}.coll-unit{width:50px}.coll-qty,.coll-usage{width:70px}.coll-location{width:120px}.coll-date{width:90px}.coll-last{width:60px}.colp-status{width:65px}.colp-code{width:160px}.colp-codename{width:110px}.colp-name{width:190px}.colp-date{width:130px}.colp-expecteddate{width:100px}.colp-companyname{width:120px}.colp-manager,.colp-qty{width:70px}.colp-price{width:110px}.colp-memo{width:90px}.colp-actions{width:70px}.colib-code{width:130px}.colib-date,.colib-location{width:110px}.colib-codename{width:90px}.colib-name{width:320px}.colib-location{width:100px}.colib-qty,.colib-manager{width:50px}.colib-memo{width:70px}.colob-status{width:85px}.colob-code{width:150px}.colob-date,.colob-location{width:120px}.colob-shipfrom,.colob-codename{width:100px}.colob-name{width:230px}.colob-qty,.colob-manager{width:60px}.colob-memo{width:80px}.colob-manage{width:60px}.colw-status{width:52px}.colw-code{width:90px}.colw-name{width:100px}.colw-manager{width:50px}.colw-qty{width:60px}.colw-phone{width:90px}.colw-address{width:290px}.colw-memo{width:70px}.colw-manage,.colws-status{width:50px}.colws-code{width:120px}.colws-date,.colws-location{width:100px}.colws-codename{width:80px}.colws-name{width:340px}.colws-qty{width:60px}.colws-manager{width:50px}.colws-memo{width:70px}.colt-code{width:130px}.colt-date{width:110px}.colt-location,.colt-codename{width:100px}.colt-name{width:290px}.colt-qty,.colt-manager{width:60px}.colt-memo{width:70px}.coldu-status{width:45px}.coldu-code{width:80px}.coldu-name{width:280px}.coldu-qty{width:48px}.coldi-status{width:60px}.coldi-inboundno{width:150px}.coldi-name{width:220px}.coldi-warehouse{width:120px}.coldi-qty{width:70px}.coldi-date{width:120px}.coldo-status{width:60px}.coldo-outboundno{width:150px}.coldo-name{width:220px}.coldo-warehouse{width:120px}.coldo-qty{width:70px}.coldo-date{width:120px}.cola-act{width:80px}.cola-date{width:130px}.cola-user{width:110px}.cola-target{width:60px}.cola-targetId{width:220px}.cola-explanation{width:80px}.cola-ip{width:120px}.cola-memo{width:60px}a{color:inherit;text-decoration:none}a:hover,a:visited,a:active{text-decoration:none}.req{color:#dc2626;margin-left:4px;font-weight:800}.btn{padding:10px 16px;border-radius:10px;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;width:auto;min-height:40px;border:1px solid transparent;font:inherit;line-height:1;white-space:nowrap;appearance:none;-webkit-appearance:none;transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .05s ease,opacity .15s ease,filter .15s ease}.btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none;filter:none}.btn.primary{background:var(--primary);color:#fff;border:1px solid var(--primary)}.btn.primary:hover:not(:disabled){background:#2563ebe6;box-shadow:0 4px 12px #2563eb40}.btn.primary:active:not(:disabled){transform:translateY(1px);box-shadow:0 2px 6px #2563eb40}.btn.ghost{background:#fff;color:#0f172aa6;border:1px solid rgba(15,23,42,.18)}.btn.ghost:hover:not(:disabled){background:#0f172a0a}.btn.ghost:active:not(:disabled){transform:translateY(1px);box-shadow:0 2px 6px #2563eb40}.btn-inline{width:80px;padding:12px 10px}.btn.soft-primary{background:#2563eb1a;color:#1d4ed8f2;border:1px solid rgba(37,99,235,.25)}.btn.soft-primary:hover:not(:disabled){background:#2563eb24}.btn.btn-sm{min-height:34px;padding:8px 12px;font-size:13px;font-weight:600}.panel-head .panel-actions .btn.primary{background:#2563eb1a;color:var(--primary);border:1px solid rgba(37,99,235,.35)}.status-badge-svg{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:0;height:22px;padding:0 10px;border-radius:999px;border:1px solid rgba(0,0,0,.14);background:#ffffffd9;font-size:12px;line-height:1;letter-spacing:-.2px;white-space:nowrap;-webkit-user-select:none;user-select:none}.status-badge-svg__icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;opacity:.95}.status-badge-svg__text{display:inline-block;transform:translateY(.5px)}.status-badge-svg.is-active{border-color:#10b98159;background:#10b9811a;color:#10b981f2}.status-badge-svg.is-suspended{border-color:#f59e0b59;background:#f59e0b1a;color:#f59e0bf2}.status-badge-svg.is-discontinued{border-color:#ef444459;background:#ef44441a;color:#ef4444f2}.status-badge-svg.is-over{border-color:#f9731659;background:#f973161a;color:#f97316f2}.status-badge-svg.is-view,.status-badge-svg.is-edit{border-color:#6b728059;background:#6b72801a;color:#374151f2}.status-badge-svg:hover{filter:brightness(1.02)}.col-status .status-badge-svg{vertical-align:middle}button.status-badge-svg{cursor:pointer;appearance:none;-webkit-appearance:none;border:1px solid rgba(0,0,0,.14);background:#ffffffd9;padding:0 10px;font:inherit;line-height:1}button.status-badge-svg.is-edit,button.status-badge-svg.is-view{border-color:#6b728059;background:#6b72801a;color:#374151f2}button.status-badge-svg:disabled{opacity:.55;cursor:not-allowed;filter:none}.toast{position:fixed;right:24px;bottom:24px;z-index:9999;min-width:280px;max-width:420px;padding:14px 16px;border-radius:12px;color:#fff;font-size:14px;font-weight:600;line-height:1.45;box-shadow:0 10px 30px #0000002e;animation:toast-slide-in .22s ease;pointer-events:auto}.toast-inner{display:flex;align-items:center;gap:10px}.toast-icon{width:20px;height:20px;flex:0 0 20px;color:#fff}.toast-message{display:block;flex:1;white-space:pre-line;word-break:keep-all;overflow-wrap:break-word}.toast-close{border:0;background:transparent;color:#fff;font-size:18px;line-height:1;cursor:pointer;padding:0;margin-left:4px;opacity:.85;min-width:18px;min-height:18px}.toast-close:hover{opacity:1}.toast-success{background:#1f7a4d}.toast-error{background:#b42318}.toast-warning{background:#b54708}.toast-info{background:#344054}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.table-link-button{border:0;background:transparent;padding:0;margin:0;font:inherit;color:#2563eb;cursor:pointer}.table-link-button:hover{opacity:.85}.table-link-button:disabled{color:inherit;cursor:default;text-decoration:none;opacity:.6}.table .th-number,.table .td-number{text-align:right}.table .td-number{font-variant-numeric:tabular-nums}.table .td-number .table-link-button.table-link-button--number{display:inline-flex;justify-content:flex-end;align-items:center;width:100%;text-align:right}.table .th-center,.table .td-center{text-align:center}.export-dropdown{position:relative;display:inline-block}.export-trigger{display:inline-flex;align-items:center;gap:8px}.export-trigger{display:inline-flex;align-items:center;gap:6px}.export-trigger-chevron{display:inline-flex;align-items:center;transition:transform .15s ease}.export-trigger-chevron.is-open{transform:rotate(180deg)}.export-menu{position:absolute;top:calc(100% + 4px);right:0;background:#fff;border:1px solid #d9dee7;border-radius:8px;box-shadow:0 8px 20px #0f172a14;padding:4px;width:max-content;min-width:0;z-index:100}.export-item{display:block;width:100%;padding:4px 8px;text-align:left;background:transparent;border:none;border-radius:6px;font-size:12px;line-height:1.2;cursor:pointer;white-space:nowrap}.export-item:hover{background:#f4f7fb}.export-item:disabled{opacity:.6;cursor:not-allowed}.table th.resizable{position:relative;-webkit-user-select:none;user-select:none}.table th.resizable .th-inner{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-width:0}.table th.resizable .th-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table th.resizable .resize-handle{position:absolute;top:0;right:0;width:8px;height:100%;cursor:col-resize;z-index:2}.table th.resizable .resize-handle:after{content:"";position:absolute;top:20%;bottom:20%;right:3px;width:1px;background:#0f172a24;transition:background .2s ease}.table th.resizable:hover .resize-handle:after{background:#0f172a47}.table th.resizable.is-active-resizable{overflow:visible}
