:root{--color-primary: #2477e0;--color-primary-2: #1b5fbe;--grad: linear-gradient(135deg, #2f86ef 0%, #1b5fbe 100%);--color-text: #1f2733;--color-muted: #5c6373;--color-bg: #eff4fb;--color-surface: #ffffff;--color-line: #dce3ee;--color-danger: #d94141;--color-success: #157a4a;--color-warn: #9a5b00;--fs-stat: 1.75rem;--fs-h1: 1.5rem;--fs-section: 1.0625rem;--fs-body: .9375rem;--fs-sm: .85rem;--fs-label: .75rem;--lh-body: 1.55;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--r-sm: 8px;--r-md: 12px;--r-lg: 14px;--r-pill: 999px;--radius: var(--r-lg);--shadow-sm: 0 1px 2px rgba(20, 40, 80, .05);--shadow-md: 0 1px 2px rgba(20, 40, 80, .04), 0 6px 20px rgba(20, 40, 80, .05);--shadow-lg: -8px 0 30px rgba(20, 40, 80, .15);--sidebar-w: 256px;font-size:16px;font-family:Pretendard,system-ui,-apple-system,Apple SD Gothic Neo,sans-serif;color:var(--color-text)}*{box-sizing:border-box}body{margin:0;background:var(--color-bg);font-size:var(--fs-body);line-height:var(--lh-body)}a{color:var(--color-primary);text-decoration:none}h1{font-size:var(--fs-h1);font-weight:800;letter-spacing:-.01em;line-height:1.3;margin:0 0 var(--sp-4)}h2{font-size:var(--fs-section);font-weight:700;letter-spacing:-.005em;margin:var(--sp-6) 0 var(--sp-3);color:var(--color-text)}h3{font-size:var(--fs-section);font-weight:700;margin:0 0 var(--sp-3)}.layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-line);height:100vh;position:sticky;top:0;overflow-y:auto;padding-bottom:var(--sp-8)}.sidebar .brand{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-5) var(--sp-5);font-weight:800;font-size:1.2rem}.sidebar .brand .dot{width:28px;height:28px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#6fb6ff,var(--color-primary));flex-shrink:0}.profile{text-align:center;padding:var(--sp-2) var(--sp-4) var(--sp-5);border-bottom:1px solid var(--color-line)}.profile .avatar{width:64px;height:64px;border-radius:50%;margin:0 auto var(--sp-2);background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700}.profile .name{font-weight:700}.profile .status{color:var(--color-success);font-size:var(--fs-label)}.menu-section{text-transform:uppercase;font-size:var(--fs-label);letter-spacing:.05em;color:var(--color-muted);padding:var(--sp-5) var(--sp-5) var(--sp-1);font-weight:700}.menu-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-5);color:var(--color-text);font-weight:500;border-left:3px solid transparent;cursor:pointer}.menu-item svg{width:20px;height:20px;fill:currentColor;opacity:.8;flex-shrink:0}.menu-item:hover{background:#f1f6fd}.menu-item.router-link-exact-active{color:var(--color-primary);background:#e3edfb;border-left-color:var(--color-primary);font-weight:700}.menu-item .badge{margin-left:auto}.badge{background:var(--color-primary);color:#fff;border-radius:var(--r-pill);font-size:.7rem;padding:.1rem .5rem;font-weight:700}.content-area{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{background:var(--grad);color:#fff;display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-6);position:sticky;top:0;z-index:10}.topbar .title{font-weight:700;font-size:var(--fs-section)}.topbar .spacer{flex:1}.topbar input[type=search],.topbar .search{border:none;border-radius:var(--r-pill);padding:var(--sp-2) var(--sp-4);min-width:200px}.topbar .btn{background:#ffffff2e;box-shadow:none}.topbar a{color:#fff}.page{padding:var(--sp-6) 1.75rem;flex:1;max-width:1280px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-5);flex-wrap:wrap}.page-header h1{margin:0}.page-header__sub{color:var(--color-muted);font-size:var(--fs-sm);margin:var(--sp-1) 0 0}.page-header__actions{display:flex;gap:var(--sp-2);align-items:center}.card{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--r-lg);padding:var(--sp-5);margin-bottom:var(--sp-4);box-shadow:var(--shadow-md)}.card__header{font-size:var(--fs-section);font-weight:700;margin-bottom:var(--sp-3);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--sp-4)}.stat-card{display:flex;flex-direction:column;gap:var(--sp-1);background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--shadow-md);color:var(--color-text)}.stat-card__icon{width:40px;height:40px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;background:#e3edfb;color:var(--color-primary);font-size:1.1rem;margin-bottom:var(--sp-2)}.stat-card__value{font-size:var(--fs-stat);font-weight:800;letter-spacing:-.02em;line-height:1.1}.stat-card__label{font-size:var(--fs-label);font-weight:600;letter-spacing:.02em;color:var(--color-muted)}.stat-card__sub{font-size:var(--fs-label);color:var(--color-muted)}a.stat-card:hover{border-color:var(--color-primary)}.metric{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4)}.metric .label{color:var(--color-muted);font-size:var(--fs-label)}.metric .value{font-size:1.35rem;font-weight:800;margin-top:2px}.list-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--color-line)}.list-row:last-child{border-bottom:none}.list-row__avatar{width:40px;height:40px;border-radius:50%;flex-shrink:0;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}.list-row__body{flex:1;min-width:0}.list-row__title{font-weight:700;display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.list-row__meta{color:var(--color-muted);font-size:var(--fs-sm);margin-top:2px}.list-row__actions{display:flex;gap:var(--sp-2);align-items:center;flex-shrink:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);background:var(--color-primary);color:#fff;border:none;border-radius:var(--r-md);padding:.55rem 1rem;font-size:var(--fs-body);cursor:pointer;font-weight:600;box-shadow:0 1px 2px #1b5fbe2e;transition:background .12s,transform .06s}.btn:hover{background:var(--color-primary-2)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.ghost{background:transparent;color:var(--color-primary);border:1px solid var(--color-primary);box-shadow:none}.btn.ghost:hover{background:#eef4fb}.btn.sm{padding:.35rem .7rem;font-size:var(--fs-sm);min-height:36px}.btn.danger{background:var(--color-danger);box-shadow:0 1px 2px #b4222233}.btn.danger:hover{background:#c23434}input,select,textarea{border:1px solid var(--color-line);border-radius:var(--r-md);padding:.6rem .8rem;font-size:var(--fs-body);font-family:inherit;background:#fff;color:var(--color-text)}select,input:not([type=checkbox]):not([type=radio]){height:44px;line-height:1.2}input:focus,select:focus,textarea:focus{outline:2px solid var(--color-primary-2);border-color:transparent}label{font-size:var(--fs-sm)}.form-error{color:var(--color-danger);font-size:var(--fs-sm);margin:var(--sp-2) 0}.form-success{color:var(--color-success);font-size:var(--fs-sm);margin:var(--sp-2) 0}.container{max-width:1100px;margin:0 auto;padding:var(--sp-4)}.nav{display:flex;gap:var(--sp-4);padding:var(--sp-4);align-items:center}table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}table thead th{text-align:left;color:var(--color-muted);font-weight:700;font-size:var(--fs-label);padding:var(--sp-3) var(--sp-2);border-bottom:2px solid var(--color-line);white-space:nowrap}table tbody td{padding:var(--sp-3) var(--sp-2);border-bottom:1px solid var(--color-line);vertical-align:middle}table tbody tr:hover{background:#f5f8fd}.modal-scrim,.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#141e3266;z-index:60}.modal-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(520px,92vw);max-height:88vh;overflow-y:auto;background:var(--color-surface);border-radius:var(--r-lg);z-index:61;box-shadow:var(--shadow-lg);padding:var(--sp-6)}.drawer-panel{position:fixed;top:0;right:0;height:100vh;width:min(460px,92vw);background:var(--color-surface);z-index:61;overflow-y:auto;box-shadow:var(--shadow-lg);padding:var(--sp-5) var(--sp-6)}.status-chip{display:inline-flex;align-items:center;gap:var(--sp-1);padding:.15rem .6rem;border-radius:var(--r-pill);font-size:var(--fs-label);font-weight:700;line-height:1.6;border:1px solid transparent;white-space:nowrap}.status-chip.is-wait{background:#fff4e0;color:#9a5b00;border-color:#ffd591}.status-chip.is-active{background:#e8f0ff;color:#1a52c4;border-color:#adc8ff}.status-chip.is-done{background:#e3f8ee;color:#157a4a;border-color:#9ae0bd}.status-chip.is-warn{background:#ffe9e9;color:#b42222;border-color:#ffb3b3}.status-chip.is-muted{background:#eef0f5;color:#5c6272;border-color:#d8dbe4}.progress-steps{display:flex;align-items:flex-start;gap:0;margin:var(--sp-3) 0;overflow-x:auto;padding-bottom:var(--sp-1)}.progress-steps .step{flex:1 1 0;min-width:62px;text-align:center;position:relative;font-size:var(--fs-label);color:var(--color-muted)}.progress-steps .step .dot{width:26px;height:26px;border-radius:50%;margin:0 auto var(--sp-1);display:flex;align-items:center;justify-content:center;background:#eef0f5;color:#9aa0b0;font-weight:800;font-size:var(--fs-label);border:2px solid #eef0f5;position:relative;z-index:1}.progress-steps .step:before{content:"";position:absolute;top:13px;left:-50%;width:100%;height:2px;background:#e3e5ec;z-index:0}.progress-steps .step:first-child:before{display:none}.progress-steps .step.done .dot{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.progress-steps .step.done:before{background:var(--color-primary)}.progress-steps .step.current .dot{background:#fff;color:var(--color-primary);border-color:var(--color-primary)}.progress-steps .step.current{color:var(--color-primary);font-weight:800}.progress-steps .step.current:before{background:var(--color-primary)}.notice{display:flex;gap:var(--sp-2);align-items:flex-start;background:var(--color-surface-alt, #f2f6fc);border:1px solid var(--color-line);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);color:var(--color-muted);font-size:var(--fs-sm);line-height:1.5;margin-bottom:var(--sp-4)}.notice .icon{flex-shrink:0}.empty-state{text-align:center;color:var(--color-muted);padding:var(--sp-8) var(--sp-4);font-size:var(--fs-body)}.empty-state .icon{font-size:1.8rem;display:block;margin-bottom:var(--sp-2);opacity:.6}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible,[role=button]:focus-visible,[role=tab]:focus-visible{outline:3px solid #ffbf00;outline-offset:2px;border-radius:6px}.btn,button,input:not([type=checkbox]):not([type=radio]),select,textarea,[role=button]{min-height:44px}.btn{min-width:44px}a:not(.btn):hover,a:not(.btn):focus-visible{text-decoration:underline}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:8px;top:-48px;z-index:1000;background:var(--color-primary);color:#fff;padding:.6rem 1rem;border-radius:var(--r-sm);transition:top .15s}.skip-link:focus{top:8px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}@media (prefers-contrast: more){:root{--color-muted: #40465a;--color-line: #b8bcc9}.btn{border:1px solid #000}}@media (max-width: 768px){.sidebar{position:fixed;left:0;z-index:50;transform:translate(-100%);transition:transform .2s}.sidebar.open{transform:none}.page{padding:var(--sp-4)}}.toolbar{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-4)}.toolbar .spacer{flex:1}
