@font-face{font-family:Pretendard Variable;font-weight:45 920;font-style:normal;font-display:swap;src:url(https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/PretendardVariable.woff2)format("woff2-variations")}:root{--bg:#f8f9fb;--surface:#fff;--surface-elevated:#fff;--surface-alt:#f9fafb;--text:#0f1117;--text-muted:#6b7280;--text-subtle:#9ca3af;--border:#e5e7eb;--border-strong:#d1d5db;--primary:#5b5bd6;--primary-hover:#4f4fc0;--primary-soft:#eef0fe;--sidebar-bg:#0f1117;--sidebar-text:#e5e7eb;--sidebar-muted:#6b7280;--sidebar-active:#5b5bd6;--success:#10b981;--success-soft:#d1fae5;--success-text:#065f46;--info:#3b82f6;--info-soft:#dbeafe;--info-text:#1e40af;--warning:#f59e0b;--warning-soft:#fef3c7;--warning-text:#92400e;--danger:#ef4444;--danger-soft:#fee2e2;--danger-text:#991b1b;--color-bg:var(--bg);--color-surface:var(--surface);--color-text:var(--text);--color-text-muted:var(--text-muted);--color-border:var(--border);--color-primary:var(--primary);--color-primary-hover:var(--primary-hover);--color-success:var(--success);--color-warning:var(--warning);--color-danger:var(--danger);--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-pill:999px;--shadow-card:0 1px 3px #0f11170a, 0 1px 2px #0f111708;--shadow-elevated:0 4px 12px #0000000f;--shadow-modal:0 12px 40px #00000026;--shadow-sm:var(--shadow-card);--shadow-md:var(--shadow-elevated);--t-fast:.1s ease;--t-base:.12s ease;--t-smooth:.2s ease}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-feature-settings:"tnum", "ss01";-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background:var(--bg);color:var(--text);letter-spacing:0;font-family:Pretendard Variable,Pretendard,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans KR,system-ui,sans-serif;font-size:15px;line-height:1.5}button,input,select,textarea{font-feature-settings:inherit;font-family:inherit}button{cursor:pointer;color:inherit;background:0 0;border:0;padding:0}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.t-display{letter-spacing:-.02em;font-size:2rem;font-weight:700;line-height:1.2}.t-h1{letter-spacing:-.015em;font-size:1.5rem;font-weight:700;line-height:1.3}.t-h2{letter-spacing:-.005em;font-size:1.125rem;font-weight:600;line-height:1.4}.t-h3{font-size:1rem;font-weight:600;line-height:1.45}.t-body{font-size:.9375rem;font-weight:500;line-height:1.55}.t-body-sm{font-size:.8125rem;font-weight:500;line-height:1.5}.t-caption{letter-spacing:.04em;text-transform:uppercase;font-size:.75rem;font-weight:600}.t-number-lg{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:1.75rem;font-weight:700;line-height:1.2}.t-number-md{font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:700;line-height:1.3}.t-mono{font-family:ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace;font-size:.8125rem;font-weight:500}.t-muted{color:var(--text-muted)}.t-subtle{color:var(--text-subtle)}.btn{border-radius:var(--radius-md);height:36px;transition:background var(--t-base), color var(--t-base), border-color var(--t-base), transform var(--t-fast);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:.8125rem;font-weight:500;display:inline-flex}.btn:focus-visible{outline:2px solid var(--primary-soft);outline-offset:2px}.btn-sm{height:32px;padding:0 12px}.btn-md{height:36px;padding:0 14px}.btn-lg{height:44px;padding:0 18px;font-size:.9375rem;font-weight:600}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn-secondary:hover{background:var(--surface-alt);border-color:var(--border-strong)}.btn-ghost{color:var(--primary);background:0 0}.btn-ghost:hover{background:var(--primary-soft)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{filter:brightness(.92)}.btn[disabled],.btn.is-disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn-icon{border-radius:var(--radius-sm);width:24px;height:24px;color:var(--text-muted);background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-icon:hover{background:var(--primary-soft);color:var(--primary)}.btn-icon.is-active{color:var(--primary)}.field{flex-direction:column;gap:6px;display:flex}.label{color:var(--text-muted);font-size:.8125rem;font-weight:500}.label .req{color:var(--danger);margin-left:2px}.helper,.error-text{letter-spacing:.02em;font-size:.75rem;font-weight:500}.helper{color:var(--text-muted)}.error-text{color:var(--danger)}.input,.select,.textarea{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);height:40px;color:var(--text);transition:border-color var(--t-base), background var(--t-base);outline:none;width:100%;padding:0 12px;font-size:.9375rem;font-weight:500}.input::placeholder,.textarea::placeholder{color:var(--text-subtle)}.input:hover,.select:hover,.textarea:hover{border-color:var(--border-strong)}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary)}.input.is-error,.select.is-error,.textarea.is-error{border-color:var(--danger)}.input.is-disabled,.input[disabled],.select.is-disabled,.select[disabled]{color:var(--text-subtle);cursor:not-allowed;background:#f3f4f6}.textarea{resize:vertical;height:auto;min-height:88px;padding:10px 12px;line-height:1.5}.select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}.input-icon{display:block;position:relative}.input-icon>svg,.input-icon>[data-icon]{color:var(--text-muted);pointer-events:none;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.input-icon>.input{padding-left:36px}.card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);border-top:3px solid #0000;padding:20px 22px}.card.is-default{border-top-color:#0000}.card.is-primary{border-top-color:var(--primary)}.card.is-success{border-top-color:var(--success)}.card.is-warning{border-top-color:var(--warning)}.card.is-danger{border-top-color:var(--danger)}.card-label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0 0 8px;font-size:.75rem;font-weight:600}.card-value{letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--text);font-size:1.75rem;font-weight:700;line-height:1.2}.card-sub{color:var(--text-muted);margin-top:4px;font-size:.8125rem;font-weight:500}.card-grid{gap:16px;display:grid}.card-grid.cols-3{grid-template-columns:repeat(3,1fr)}.card-grid.cols-4{grid-template-columns:repeat(4,1fr)}.cards-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;display:grid}.cards-grid-3{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:28px;display:grid}.badge{border-radius:var(--radius-pill);white-space:nowrap;align-items:center;gap:4px;padding:3px 10px;font-size:.75rem;font-weight:500;line-height:1.4;display:inline-flex}.badge.is-unsettled{background:var(--warning-soft);color:var(--warning-text)}.badge.is-settled{background:var(--success-soft);color:var(--success-text)}.badge.is-held{background:var(--danger-soft);color:var(--danger-text)}.badge.is-active{background:var(--info-soft);color:var(--info-text)}.badge.is-inactive{color:var(--text-muted);background:#f3f4f6}.badge.is-progress{background:var(--primary-soft);color:var(--primary)}.table-wrap{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.table{border-collapse:collapse;width:100%}.table thead th{text-align:left;background:var(--surface-alt);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);padding:12px 14px;font-size:.6875rem;font-weight:600}.table tbody td{color:var(--text);border-bottom:1px solid var(--border);vertical-align:middle;padding:14px;font-size:.8125rem;font-weight:500}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover{background:var(--surface-alt)}.table tbody tr.is-clickable{cursor:pointer}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table .actions{text-align:right}.table-empty{text-align:center;color:var(--text-muted);padding:36px 14px;font-size:.8125rem}.page-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;padding-bottom:16px;display:flex}.page-header h1{letter-spacing:-.015em;color:var(--text);margin:0;font-size:1.5rem;font-weight:700}.page-header .subtitle{color:var(--text-muted);margin-top:4px;font-size:.8125rem;font-weight:500}.page-header .actions{flex-shrink:0;gap:8px;display:flex}.toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.pager{justify-content:center;gap:4px;margin-top:16px;display:flex}.pager .pg{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);min-width:32px;height:32px;color:var(--text);justify-content:center;align-items:center;padding:0 10px;font-size:.8125rem;font-weight:500;display:inline-flex}.pager .pg:hover{background:var(--surface-alt);border-color:var(--border-strong)}.pager .pg.is-active{background:var(--primary);color:#fff;border-color:var(--primary)}.pager .pg[disabled]{opacity:.4;cursor:not-allowed}.pager .pg.is-ellipsis{color:var(--text-muted);background:0 0;border:0}.shell{min-height:100vh;display:flex}.sidebar{background:var(--sidebar-bg);width:240px;color:var(--sidebar-text);flex-direction:column;flex-shrink:0;display:flex}.sidebar-brand{border-bottom:1px solid #ffffff14;padding:24px 22px}.sidebar-brand .name{color:#fff;letter-spacing:-.005em;font-size:1rem;font-weight:700}.sidebar-brand .role{letter-spacing:.06em;text-transform:uppercase;color:#ffffff8c;margin-top:6px;font-size:.6875rem;font-weight:600}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:16px 12px;display:flex}.nav-item{border-radius:var(--radius-md);color:#ffffffbf;transition:background var(--t-base), color var(--t-base);cursor:pointer;align-items:center;gap:10px;padding:10px 14px;font-size:.8125rem;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{color:#fff;background:#ffffff0f;text-decoration:none}.nav-item.is-active{background:var(--sidebar-active);color:#fff}.nav-item svg{flex-shrink:0;width:16px;height:16px}.sidebar-user{border-top:1px solid #ffffff14;flex-direction:column;gap:10px;padding:16px 18px;display:flex}.sidebar-user .name{color:#fff;font-size:.8125rem;font-weight:600}.sidebar-user .meta{color:#ffffff8c;letter-spacing:.04em;text-transform:uppercase;font-size:.6875rem}.logout-btn{color:#fff;border-radius:var(--radius-sm);width:100%;height:32px;transition:background var(--t-base);background:#ffffff14;justify-content:center;align-items:center;gap:6px;font-size:.75rem;font-weight:500;display:flex}.logout-btn:hover{background:#ffffff24}.main{background:var(--bg);flex:1;min-width:0;padding:32px 36px}.main-inner{max-width:1400px}.section{margin-bottom:28px}.section-title{letter-spacing:-.005em;color:var(--text);margin:0 0 14px;font-size:1.125rem;font-weight:600}.section-title-row{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px;display:flex}.modal-overlay{-webkit-backdrop-filter:blur(4px);z-index:100;background:#0f111780;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-lg);width:calc(100% - 48px);max-width:480px;box-shadow:var(--shadow-modal);padding:24px}.modal-title{letter-spacing:-.005em;color:var(--text);margin:0 0 8px;font-size:1.125rem;font-weight:600}.modal-body{color:var(--text);margin:0 0 20px;font-size:.9375rem}.modal-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.toast{background:var(--text);color:var(--surface);border-radius:var(--radius-md);align-items:center;gap:10px;padding:12px 16px;font-size:.8125rem;font-weight:500;display:inline-flex;box-shadow:0 4px 12px #00000026}.toast.is-success{background:var(--success)}.toast.is-error{background:var(--danger)}.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace;font-size:.8125rem}.pii{align-items:center;gap:6px;display:inline-flex}.pii .value{font-variant-numeric:tabular-nums}.fieldset{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:16px;padding:20px 22px}.fieldset>legend{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin-bottom:14px;padding:0;font-size:.75rem;font-weight:600}.form-grid-2{grid-template-columns:1fr 1fr;gap:14px 16px;display:grid}.form-grid-2 .full{grid-column:1/-1}.skel{background:linear-gradient(90deg,#eef0f3 0%,#f5f6f8 50%,#eef0f3 100%) 0 0/200% 100%;border-radius:6px;animation:1.4s ease-in-out infinite skel-shimmer}@keyframes skel-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.chk{border:1px solid var(--border-strong);background:var(--surface);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.chk.is-checked{background:var(--primary);border-color:var(--primary);color:#fff}.chk.is-checked:after{content:"";border-bottom:1.5px solid #fff;border-left:1.5px solid #fff;width:9px;height:5px;transform:rotate(-45deg)translate(1px,-1px)}.toggle{background:var(--border-strong);width:36px;height:20px;transition:background var(--t-base);border-radius:999px;flex-shrink:0;position:relative}.toggle:after{content:"";width:16px;height:16px;transition:left var(--t-base);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000026}.toggle.is-on{background:var(--primary)}.toggle.is-on:after{left:18px}.divider{background:var(--border);height:1px;margin:16px 0}.dot{background:var(--text-subtle);border-radius:50%;width:6px;height:6px;display:inline-block}.dot.is-success{background:var(--success)}.dot.is-warning{background:var(--warning)}.dot.is-danger{background:var(--danger)}.row{align-items:center;gap:8px;display:flex}.col{flex-direction:column;gap:8px;display:flex}.spacer{flex:1}.toolbar-left,.toolbar-right{align-items:center;gap:8px;display:flex}.search-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;outline:none;min-width:200px;height:36px;padding:0 12px;font-size:14px}.search-input:focus{border-color:var(--primary)}
