:root{font-family:Pretendard,Noto Sans KR,Inter,system-ui,-apple-system,sans-serif;color:#202123;background:#f7f7f5;font-synthesis:none;line-height:1.5;--surface: #ffffff;--surface-subtle: #f7f7f5;--surface-hover: #f1f1ef;--line: #e6e6e3;--line-strong: #d7d7d3;--text: #202123;--muted: #73736f;--accent: #c9232b;--accent-hover: #ad1921}*{box-sizing:border-box}body{margin:0;background:var(--surface-subtle)}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:#f2f2ef;border-right:1px solid var(--line);padding:18px 12px 14px;display:flex;flex-direction:column}.brand{display:flex;gap:11px;align-items:center;padding:5px 10px 24px}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--text);color:#fff;font-size:14px;font-weight:750;box-shadow:0 1px 2px #0000001f}.brand strong{font-size:14px;letter-spacing:-.01em}.brand small,.profile small{display:block;color:var(--muted);font-size:11px;margin-top:1px}nav{display:grid;gap:2px}nav a{display:flex;align-items:center;gap:10px;color:#4d4d49;text-decoration:none;padding:9px 11px;border-radius:8px;font-size:14px;font-weight:560;transition:background .14s ease,color .14s ease}nav a:hover{background:#0000000b;color:var(--text)}nav a.router-link-active{color:var(--text);background:var(--surface);box-shadow:0 1px 2px #0000000f,inset 0 0 0 1px #00000009}.nav-icon{width:18px;color:#70706c;text-align:center;font-size:16px;line-height:1}.profile{margin-top:auto;border-top:1px solid var(--line);padding:14px 8px 0;display:grid;grid-template-columns:32px 1fr auto;gap:9px;align-items:center}.profile strong{font-size:13px;font-weight:650}.avatar{width:32px;height:32px;border-radius:9px;background:#deded9;color:#454542;display:grid;place-items:center;font-size:13px;font-weight:700}.text-button{border:0;background:none;color:var(--muted);padding:5px 7px;font-size:11px;border-radius:6px}.text-button:hover{background:#0000000d;color:var(--text)}main{min-width:0;padding:38px 44px 60px}.page-container{width:min(100%,1440px);margin:0 auto}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:26px}h1{font-size:25px;line-height:1.2;font-weight:680;margin:0 0 7px;letter-spacing:-.035em}h2{font-size:16px;margin:0 0 15px;letter-spacing:-.015em}.muted{color:var(--muted);margin:0;font-size:13px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.card,.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 1px 2px #00000006}.card{padding:18px}.card strong{display:block;font-size:28px;line-height:1;margin-top:15px;letter-spacing:-.035em}.card small{color:var(--muted);font-size:12px}.status-dot{width:9px;height:9px;display:inline-block;border-radius:50%;background:#23a36d;margin-right:6px}.panel{margin-top:14px;padding:18px}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}.head-actions{margin-bottom:0}.selection-summary{margin-left:auto;color:var(--muted);font-size:12px}.upload-panel{display:grid;gap:15px}.upload-panel .notice,.upload-panel .toolbar{margin-bottom:0}.upload-summary{border-top:1px solid var(--line);padding-top:15px}.upload-preview{margin:14px 0;max-height:340px}.upload-confirm{display:flex;justify-content:space-between;align-items:center;gap:16px}.input,select{border:1px solid var(--line-strong);border-radius:8px;padding:8px 11px;color:var(--text);background:var(--surface);min-height:38px;outline:none;transition:border-color .14s ease,box-shadow .14s ease}.input:focus,select:focus{border-color:#9c9c96;box-shadow:0 0 0 3px #0000000e}.input{min-width:260px}.btn{border:1px solid var(--text);border-radius:8px;padding:8px 13px;min-height:38px;font-size:13px;font-weight:630;background:var(--text);color:#fff;transition:background .14s ease,border-color .14s ease,transform .08s ease}.btn:hover:not(:disabled){background:#343436}.btn:active:not(:disabled){transform:translateY(1px)}.btn.primary{background:var(--accent);border-color:var(--accent)}.btn.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn.light{color:#41413e;background:var(--surface);border-color:var(--line-strong)}.btn.light:hover:not(:disabled){background:var(--surface-hover)}.btn:disabled{opacity:.4;cursor:not-allowed}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:9px}table{width:100%;border-collapse:collapse;font-size:13px}th{color:#686864;background:#f7f7f5;text-align:left;white-space:nowrap;font-size:12px;font-weight:650}th,td{padding:11px 12px;border-bottom:1px solid #ecece9;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:#fafaf9}td{max-width:300px}.order-table-wrap{max-height:calc(100vh - 260px)}.order-table{width:max-content;min-width:100%}.order-table thead{position:sticky;top:0;z-index:3}.order-table th,.order-table td{min-width:110px}.order-table .sticky-select{position:sticky;left:0;z-index:2;min-width:44px;width:44px;max-width:44px;text-align:center;background:var(--surface);box-shadow:1px 0 0 var(--line)}.order-table thead .sticky-select{z-index:4;background:#f7f7f5}.order-table .numeric{text-align:right;font-variant-numeric:tabular-nums}.order-table .wide-cell{min-width:260px;max-width:340px;white-space:normal}.truncate{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:250px}.badge{display:inline-flex;align-items:center;padding:3px 8px;border:1px solid #e0e0dc;border-radius:999px;font-size:11px;line-height:1.4;font-weight:650;background:#f5f5f3;color:#5c5c58}.badge.SUCCESS{background:#edf8f2;border-color:#d6eee1;color:#18794e}.badge.FAILED,.badge.VALIDATION_ERROR{background:#fff0f0;border-color:#f4d7d8;color:#b4232a}.badge.UNKNOWN{background:#fff7e8;border-color:#f2e4bd;color:#8a5a00}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:16px}.pagination strong{min-width:30px;text-align:center;font-size:13px}.notice{padding:11px 13px;background:#f6f6f3;color:#62625e;border:1px solid var(--line);border-radius:8px;margin-bottom:14px;font-size:12px}.error,.success{padding:10px 12px;border-radius:8px;font-size:13px}.error{color:#a91f26;background:#fff2f2;border:1px solid #f3d9da;margin:10px 0}.success{color:#176b48;background:#eff9f3;border:1px solid #d7ede0;margin:10px 0}input[type=checkbox]{width:15px;height:15px;accent-color:var(--text)}input[type=file]{color:var(--muted);font-size:12px}input[type=file]::file-selector-button{border:1px solid var(--line-strong);background:var(--surface);border-radius:7px;padding:7px 10px;margin-right:9px;color:var(--text);font:inherit;cursor:pointer}.login-page{min-height:100vh;display:grid;place-items:center;background:#f7f7f5}.login-box{width:min(400px,calc(100% - 32px));background:#fff;border:1px solid var(--line);border-radius:14px;padding:32px;box-shadow:0 16px 40px #00000012}.login-box .brand{padding:0 0 25px}.field{display:grid;gap:7px;margin:14px 0}.field .input{width:100%}.login-box .btn{width:100%;margin-top:9px;min-height:45px}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding:12px}.brand{padding-bottom:12px}nav{grid-template-columns:repeat(3,minmax(max-content,1fr));overflow-x:auto}.profile{display:none}main{padding:26px 18px 44px}.cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.cards{grid-template-columns:1fr}.page-head{align-items:start;gap:15px;flex-direction:column}}
