.toast-stack[data-v-ed0414a4]{z-index:var(--z-toast);pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:24px;right:24px}.toast[data-v-ed0414a4]{pointer-events:auto;cursor:pointer;border-radius:var(--r-lg);min-width:320px;max-width:460px;font-size:var(--fs-13);color:#fff;background:var(--text-primary);box-shadow:var(--shadow-md);align-items:center;gap:12px;padding:14px 18px;line-height:1.5;display:flex}.toast[data-v-ed0414a4]:before{flex-shrink:0;font-family:bootstrap-icons;font-size:18px;line-height:1}.toast--success[data-v-ed0414a4]{background:var(--success)}.toast--success[data-v-ed0414a4]:before{content:""}.toast--warning[data-v-ed0414a4]{background:var(--warning)}.toast--warning[data-v-ed0414a4]:before{content:""}.toast--error[data-v-ed0414a4]{background:var(--danger)}.toast--error[data-v-ed0414a4]:before{content:""}.toast--info[data-v-ed0414a4]{background:var(--accent)}.toast--info[data-v-ed0414a4]:before{content:""}.toast-enter-from[data-v-ed0414a4],.toast-leave-to[data-v-ed0414a4]{opacity:0;transform:translateY(8px)}.toast-enter-active[data-v-ed0414a4],.toast-leave-active[data-v-ed0414a4]{transition:opacity .18s,transform .18s}.cm-backdrop[data-v-9186bc99]{z-index:calc(var(--z-modal) + 5);padding:var(--space-8);background:#00000073;justify-content:center;align-items:center;animation:.12s ease-out cm-fade-in-9186bc99;display:flex;position:fixed;inset:0}.cm-modal[data-v-9186bc99]{background:var(--bg-card);border-radius:var(--r-card-lg);width:100%;max-width:440px;box-shadow:var(--shadow-lg);animation:.16s ease-out cm-slide-up-9186bc99;overflow:hidden}.cm-head[data-v-9186bc99]{align-items:center;gap:10px;padding:16px 20px 10px;display:flex}.cm-icon[data-v-9186bc99]{color:var(--accent);font-size:20px}.cm-modal--danger .cm-icon[data-v-9186bc99]{color:var(--danger)}.cm-title[data-v-9186bc99]{font-size:var(--fs-14);font-weight:var(--fw-bold);color:var(--text-primary);margin:0}.cm-body[data-v-9186bc99]{font-size:var(--fs-13);color:var(--text-secondary);padding:0 20px 16px;line-height:1.6}.cm-line[data-v-9186bc99]{white-space:pre-wrap;margin:0 0 4px}.cm-foot[data-v-9186bc99]{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:10px 20px 14px;display:flex}@keyframes cm-fade-in-9186bc99{0%{opacity:0}to{opacity:1}}@keyframes cm-slide-up-9186bc99{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.progress-overlay[data-v-84348225]{z-index:99999;pointer-events:none;background:#0f172a59;place-items:center;display:grid;position:fixed;inset:0}.progress-card[data-v-84348225]{color:#fff;text-shadow:0 1px 4px #0000008c;background:0 0;flex-direction:column;align-items:center;gap:12px;padding:24px 32px;font-size:14px;font-weight:600;display:flex}.spinner[data-v-84348225]{border:4px solid #ffffff40;border-top-color:#fff;border-radius:50%;width:36px;height:36px;animation:.9s linear infinite spin-84348225}@keyframes spin-84348225{to{transform:rotate(360deg)}}.fade-enter-active[data-v-84348225],.fade-leave-active[data-v-84348225]{transition:opacity .18s}.fade-enter-from[data-v-84348225],.fade-leave-to[data-v-84348225]{opacity:0}@media print{.progress-overlay[data-v-84348225]{display:none!important}}:root{--bg:#f4f6f8;--bg-card:#fff;--bg-sidebar:#fff;--bg-panel:#f7f8fa;--bg-hover:#eef2f6;--bg-active:#e8eef4;--bg-input:#fff;--bg-tab-active:#fff;--bg-tab-inactive:#f4f6f8;--text-primary:#2c3e50;--text-secondary:#6b7c8f;--text-tertiary:#9aa8b5;--text-on-accent:#fff;--border:#2c3e501a;--border-strong:#c2ccd6;--accent:#004ea2;--accent-hover:#003a78;--accent-bg:#edf2f7;--accent-strong:#2c3e50;--brand-navy:#1f3a5c;--brand-blue:#2c5282;--brand-blue-light:#4a78a8;--brand-blue-tint:#c4d4e5;--color-primary:#0049a5;--color-primary-soft:#1f6fd1;--color-primary-tint:#eef4fb;--success:#2a9d8f;--success-strong:#1f7a6f;--info:#2c5282;--warning:#b7791f;--danger:#c53030;--success-bg:#e6f4f1;--warning-bg:#faf0dc;--danger-bg:#fce9e9;--kakao:#fee500;--chart-1:#2c5282;--chart-2:#6b5ba6;--chart-3:#2a9d8f;--chart-4:#e8a33c;--chart-5:#c53030;--chart-6:#4a78a8;--chart-7:#1f7a6f;--chart-8:#94a3b5;--space-1:2px;--space-2:4px;--space-3:6px;--space-4:8px;--space-5:10px;--space-6:12px;--space-8:16px;--space-10:20px;--space-12:24px;--space-16:32px;--fs-9:9px;--fs-10:10px;--fs-11:11px;--fs-12:12px;--fs-13:13px;--fs-14:14px;--fs-15:15px;--fs-16:16px;--fs-18:18px;--fs-22:22px;--fs-28:28px;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--r-sm:2px;--r-md:3px;--r-lg:4px;--r-xl:6px;--r-card:12px;--r-card-lg:14px;--r-pill:999px;--shell-pad-x:12px;--sidebar-width:210px;--sidebar-collapsed-width:56px;--header-height:52px;--tabbar-height:35px;--input-height:28px;--btn-height:28px;--input-padding:5px 8px;--btn-padding:5px 10px;--shadow-sm:0 1px 2px #0000000a;--shadow-card:0 1px 3px #0000000d;--shadow-md:0 2px 8px #0000000f;--shadow-lg:0 8px 24px #0000001a;--z-sidebar:90;--z-header:300;--z-toast:1000;--z-modal:900;--z-dropdown:110}[data-theme=dark]{--bg:#1e1e1e;--bg-card:#252526;--bg-sidebar:#252526;--bg-panel:#181818;--bg-hover:#2a2d2e;--bg-active:#1a2d3e;--bg-input:#3c3c3c;--bg-tab-active:#1e1e1e;--bg-tab-inactive:#2d2d2d;--text-primary:#ccc;--text-secondary:#9d9d9d;--text-tertiary:#6f6f6f;--border:#2d2d30;--border-strong:#3a3a3d;--accent:#569cd6;--accent-hover:#79b8e8;--accent-bg:#569cd61f;--accent-strong:#79b8e8;--success:#4ec9b0;--success-strong:#6ad6c0;--info:#4fc1ff;--warning:#dcdcaa;--danger:#f48771;--success-bg:#4ec9b024;--warning-bg:#dcdcaa24;--danger-bg:#f4877124;--shadow-sm:0 1px 2px #0006;--shadow-card:0 1px 3px #0006;--shadow-md:0 2px 8px #00000080;--shadow-lg:0 8px 24px #0009}[data-theme=dark] .app-header{background:#084694!important}*{box-sizing:border-box}html,body,#app{height:100%;margin:0;padding:0}html{font-size:var(--fs-12)}body{background:var(--bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans KR,Helvetica Neue,Arial,sans-serif;font-size:12px;line-height:1.4;overflow:hidden}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}button{cursor:pointer;background:0 0;border:1px solid #0000;font-family:inherit}input,select,textarea{font-family:inherit;font-size:var(--fs-12);color:var(--text-primary)}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:0}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.req{color:var(--danger);font-weight:var(--fw-bold);margin-left:2px}.page{gap:var(--space-6);flex-direction:column;display:flex}.page__head{justify-content:space-between;align-items:center;gap:var(--space-6);min-height:28px;display:flex}.page__sub{font-size:var(--fs-12);color:var(--text-secondary);flex:1;margin:0}.page__actions{gap:var(--space-3);flex-shrink:0;align-items:center;display:flex}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-card-lg);box-shadow:var(--shadow-card);gap:var(--space-6);flex-direction:column;padding:18px 20px;display:flex}.card-hd{justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.card-title{font-size:var(--fs-13);font-weight:var(--fw-bold);color:var(--text-primary);margin:0}.card-sub{font-size:var(--fs-11);color:var(--text-secondary);margin-top:2px}.grid-2{gap:var(--space-6);grid-template-columns:1fr 1fr;display:grid}.grid-3{gap:var(--space-6);grid-template-columns:repeat(3,1fr);display:grid}.grid-4{gap:var(--space-6);grid-template-columns:repeat(4,1fr);display:grid}.grid-cards-md{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.grid-cards-lg{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(320px,1fr));display:grid}.btn{align-items:center;gap:var(--space-3);border-radius:var(--r-lg);font-size:var(--fs-12);font-weight:var(--fw-medium);cursor:pointer;white-space:nowrap;height:var(--btn-height);background:0 0;border:1px solid #0000;padding:6px 12px;font-family:inherit;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn--primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn--primary:hover:not(:disabled){background:var(--color-primary-soft);border-color:var(--color-primary-soft)}.btn--accent{background:var(--accent);color:#fff;border-color:var(--accent)}.btn--accent:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn--ghost,.btn--outline{color:var(--text-primary);border-color:var(--border-strong);background:0 0}.btn--ghost:hover:not(:disabled),.btn--outline:hover:not(:disabled){background:var(--bg-hover)}.btn--danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn--danger:hover:not(:disabled){filter:brightness(.92)}.btn--success{background:var(--success);color:#fff;border-color:var(--success)}.btn--success:hover:not(:disabled){background:var(--success-strong);border-color:var(--success-strong)}.btn--sm{font-size:var(--fs-11);height:24px;padding:3px 8px}.btn--lg{font-size:var(--fs-13);height:34px;padding:8px 16px}.data-table{border-collapse:collapse;width:100%;font-size:var(--fs-12)}.data-table thead th{background:var(--bg-panel);color:var(--text-secondary);font-weight:var(--fw-semibold);text-align:left;border-bottom:1px solid var(--border);z-index:1;white-space:nowrap;padding:7px 10px;position:sticky;top:0}.data-table tbody td{border-bottom:1px solid var(--border);vertical-align:middle;font-variant-numeric:tabular-nums;padding:6px 10px}.data-table tbody tr:hover td{background:var(--bg-hover)}.data-table .num{text-align:right}.data-table .num-w{text-align:right;font-variant-numeric:tabular-nums;width:110px}.badge{border-radius:var(--r-pill);font-size:var(--fs-10);font-weight:var(--fw-semibold);padding:1px 8px;display:inline-block}.badge--green{background:var(--success-bg);color:var(--success-strong)}.badge--red{background:var(--danger-bg);color:var(--danger)}.badge--amber{background:var(--warning-bg);color:var(--warning)}.badge--blue{background:var(--accent-bg);color:var(--accent)}.badge--gray{background:var(--bg-panel);color:var(--text-secondary)}.kpi-chip{border:1px solid var(--border);border-radius:var(--r-pill);background:var(--bg-panel);font-size:var(--fs-11);color:var(--text-secondary);align-items:baseline;gap:4px;padding:3px 10px;display:inline-flex}.kpi-chip b{font-weight:var(--fw-bold);color:var(--text-primary);margin-left:2px}.field{flex-direction:column;gap:4px;display:flex}.field label{font-size:var(--fs-11);color:var(--text-secondary);font-weight:var(--fw-medium)}.input,.select,.textarea{background:var(--bg-input);border:1px solid var(--border-strong);border-radius:var(--r-md);width:100%;padding:var(--input-padding);font-size:var(--fs-12);color:var(--text-primary);height:var(--input-height);transition:border-color .12s,box-shadow .12s}.input:focus,.select:focus,.textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 2px #0049a526}.input:disabled,.select:disabled,.textarea:disabled{background:var(--bg-panel);color:var(--text-tertiary);cursor:not-allowed}.textarea{resize:vertical;height:auto;min-height:64px;padding:6px 8px;font-family:inherit;line-height:1.5}.search-box{align-items:center;display:inline-flex;position:relative}.search-box>.input{min-width:200px;padding-left:28px}.search-box:before{content:"";color:var(--text-tertiary);pointer-events:none;font-family:bootstrap-icons;font-size:12px;position:absolute;left:8px}.form-row{gap:var(--space-4);margin-bottom:var(--space-4);grid-template-columns:110px 1fr;align-items:center;display:grid}.form-row>label{font-size:var(--fs-12);color:var(--text-secondary)}.inline-confirm{align-items:center;gap:4px;display:inline-flex}.inline-confirm .chip{border-radius:var(--r-pill);border:1px solid var(--border);background:var(--bg-card);font-size:var(--fs-10);color:var(--text-secondary);cursor:pointer;padding:2px 8px}.inline-confirm .chip--ok{background:var(--success-bg);color:var(--success-strong);border-color:var(--success)}.inline-confirm .chip--no{background:var(--bg-panel);color:var(--text-tertiary)}.modal-backdrop{z-index:var(--z-modal);padding:var(--space-8);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border-radius:var(--r-card-lg);width:100%;max-width:520px;max-height:92vh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;overflow:hidden}.modal--lg{max-width:760px}.modal--xl{max-width:1080px}.modal__head{justify-content:space-between;align-items:flex-start;gap:var(--space-6);border-bottom:1px solid var(--border);padding:16px 20px;display:flex}.modal__head h2{font-size:var(--fs-15);font-weight:var(--fw-bold);color:var(--accent-strong);margin:0}.modal__head .close-btn{width:28px;height:28px;color:var(--text-secondary);border-radius:var(--r-md);cursor:pointer;background:0 0;border:none;place-items:center;display:grid}.modal__head .close-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.modal__sub{font-size:var(--fs-11);color:var(--text-secondary);margin:4px 0 0}.modal__body{flex-direction:column;flex:1;gap:14px;padding:18px 22px;display:flex;overflow-y:auto}.modal__foot{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.stepper{align-items:center;gap:8px;padding:10px 0;display:flex}.stepper__step{border-radius:var(--r-pill);background:var(--bg-panel);color:var(--text-tertiary);font-size:var(--fs-11);font-weight:var(--fw-medium);align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.stepper__step .num{background:var(--bg-card);width:18px;height:18px;color:var(--text-tertiary);font-size:var(--fs-10);font-weight:var(--fw-bold);border-radius:50%;place-items:center;display:grid}.stepper__step--active{background:var(--accent-bg);color:var(--accent)}.stepper__step--active .num{background:var(--accent);color:#fff}.stepper__step--done{background:var(--success-bg);color:var(--success-strong)}.stepper__step--done .num{background:var(--success);color:#fff}.stepper__sep{background:var(--border);flex:0 0 24px;height:1px}
