:root{--palette-neutral-0: #ffffff;--palette-neutral-50: #fafafb;--palette-neutral-100: #f5f5f8;--palette-neutral-150: #f1f1f3;--palette-neutral-200: #e7e7ea;--palette-neutral-300: #d4d4d7;--palette-neutral-400: #b7b7ba;--palette-neutral-500: #98989b;--palette-neutral-600: #7a7a7d;--palette-neutral-700: #5d5d60;--palette-neutral-800: #424244;--palette-neutral-900: #2b2b2d;--palette-neutral-950: #1d1f20;--palette-accent-50: #f7fbff;--palette-accent-100: #eef6ff;--palette-accent-150: #e2edf8;--palette-accent-200: #d6ebff;--palette-accent-300: #b5d9fd;--palette-accent-400: #94bce3;--palette-accent-500: #749dc4;--palette-accent-600: #597ea3;--palette-accent-700: #416180;--palette-accent-800: #2c455d;--palette-accent-900: #1d2d3d;--palette-warning-50: #fffaf2;--palette-warning-100: #fdf3e6;--palette-warning-200: #f2e2ca;--palette-warning-700: #8a5a1c;--palette-warning-900: #5c3d10;--palette-success-100: #e4f0e8;--palette-success-700: #2f6b4a;--palette-success-900: #24523a;--palette-danger-100: #f4e6e6;--palette-danger-700: #8a3232;--color-background: var(--palette-neutral-150);--color-surface: var(--palette-neutral-0);--color-surface-sunken: var(--palette-neutral-50);--color-surface-muted: var(--palette-neutral-100);--color-surface-hover: var(--palette-neutral-100);--color-surface-active: var(--palette-neutral-200);--color-surface-selected: var(--palette-accent-50);--color-surface-inverse: var(--palette-accent-900);--color-text: var(--palette-neutral-950);--color-text-secondary: var(--palette-neutral-700);--color-text-muted: var(--palette-neutral-600);--color-text-subtle: var(--palette-neutral-500);--color-text-disabled: var(--palette-neutral-400);--color-text-on-primary: var(--palette-neutral-0);--color-text-on-primary-muted: var(--palette-accent-200);--color-border-subtle: var(--palette-neutral-150);--color-border: var(--palette-neutral-200);--color-border-control: var(--palette-neutral-300);--color-border-focus: var(--palette-accent-400);--color-border-on-primary: rgba(255, 255, 255, .4);--color-primary: var(--palette-accent-700);--color-primary-hover: var(--palette-accent-800);--color-primary-active: var(--palette-accent-900);--color-primary-disabled: var(--palette-neutral-100);--color-primary-text: var(--palette-accent-800);--color-primary-surface: var(--palette-accent-50);--color-primary-surface-strong: var(--palette-accent-100);--color-primary-border: var(--palette-accent-150);--color-primary-muted: var(--palette-accent-300);--color-warning: var(--palette-warning-700);--color-warning-text: var(--palette-warning-900);--color-warning-surface: var(--palette-warning-100);--color-warning-surface-soft: var(--palette-warning-50);--color-warning-border: var(--palette-warning-200);--color-success: var(--palette-success-700);--color-success-text: var(--palette-success-900);--color-success-surface: var(--palette-success-100);--color-danger: var(--palette-danger-700);--color-danger-surface: var(--palette-danger-100);--color-info: var(--palette-accent-800);--color-info-surface: var(--palette-accent-150);--color-info-surface-soft: var(--palette-accent-50);--color-info-border: var(--palette-accent-150);--color-status-neutral: var(--palette-neutral-700);--color-status-neutral-surface: var(--palette-neutral-150);--color-selection: var(--palette-accent-200);--color-overlay: rgba(29, 31, 32, .42)}:root{--font-family-base: "Pretendard", "Apple SD Gothic Neo", "Malgun Gothic", "맑은 고딕", system-ui, -apple-system, "Segoe UI", sans-serif;--font-family-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-size-2xs: 12px;--font-size-xs: 13px;--font-size-sm: 14px;--font-size-base: 15px;--font-size-md: 16px;--font-size-lg: 17px;--font-size-xl: 21px;--font-size-2xl: 22px;--font-size-3xl: 28px;--font-size-4xl: 30px;--line-height-tight: 1.25;--line-height-snug: 1.4;--line-height-base: 1.6;--line-height-relaxed: 1.65;--letter-spacing-tight: -.02em;--letter-spacing-wide: .04em;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-none: 0;--radius-sm: 6px;--radius-md: 9px;--radius-lg: 12px;--radius-pill: 999px;--radius-circle: 50%;--shadow-sm: 0 1px 2px color-mix(in srgb, var(--palette-neutral-950) 6%, transparent);--shadow-md: 0 3px 10px color-mix(in srgb, var(--palette-neutral-950) 12%, transparent);--shadow-lg: 0 18px 44px color-mix(in srgb, var(--palette-neutral-950) 28%, transparent);--border-width: 1px;--border-width-thick: 1.5px}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--color-background);color:var(--color-text);font-family:var(--font-family-base);font-size:var(--font-size-base);font-weight:var(--font-weight-regular);line-height:var(--line-height-base);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{margin:0 0 var(--space-2);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}p{margin:0 0 var(--space-3)}button,input,textarea,select{font:inherit}a{color:var(--color-primary);text-underline-offset:3px}a:hover{color:var(--color-primary-hover)}img{display:block;max-width:100%}figure{margin:0}:focus{outline:none}:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}::selection{background:var(--color-selection)}:root{color-scheme:light}html,body,#root{margin:0;min-height:100%}body{font-size:var(--font-size-md)}.app{min-height:100vh}.topbar{background:var(--color-surface);border-bottom:var(--border-width) solid var(--color-border);position:sticky;top:0;z-index:4}.topbar-inner{display:flex;align-items:center;gap:var(--space-5);padding:0 var(--space-6);height:60px}.brand{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);line-height:1;letter-spacing:var(--letter-spacing-tight);flex:none}.nav{display:flex;gap:2px;align-self:stretch}.nav button{display:flex;align-items:center;padding:0 var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:1;color:var(--color-text-muted);background:none;border:0;cursor:pointer}.nav button:hover{color:var(--color-text)}.nav button[aria-current=page]{color:var(--color-text);box-shadow:inset 0 -2px 0 var(--color-primary)}.unsaved-dot{margin-left:auto;display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);background:var(--color-warning-surface);color:var(--color-warning);font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);line-height:1}.page{max-width:960px;margin:0 auto;padding:var(--space-10) var(--space-7) calc(var(--space-10) * 2);display:flex;flex-direction:column;gap:var(--space-6)}.stack{display:flex;flex-direction:column;gap:var(--space-6)}.page-head{display:flex;flex-direction:column;gap:var(--space-2)}h1{font-size:var(--font-size-4xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);margin:0}.card h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.lead{color:var(--color-text);margin:0;font-size:var(--font-size-md);line-height:var(--line-height-relaxed);white-space:pre-line}.date-line{margin:0;color:var(--color-text-muted);font-size:var(--font-size-base)}.kicker{margin:0;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:1;color:var(--color-text-muted);letter-spacing:var(--letter-spacing-wide)}.hint{color:var(--color-text-muted);font-size:var(--font-size-base);line-height:var(--line-height-base);margin:0}.note{color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:var(--line-height-base);margin:0}.num{font-variant-numeric:tabular-nums}.num-xl{font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold);line-height:1}.num-lg{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);line-height:1}.fg-warn{color:var(--color-warning)}.fg-warn-strong{color:var(--color-warning-text)}.fg-success{color:var(--color-success)}.fg-success-strong{color:var(--color-success-text)}.fg-primary{color:var(--color-primary-text)}.fg-muted{color:var(--color-text-muted)}.card{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--space-4)}.card-warn{background:var(--color-warning-surface-soft);border-color:var(--color-warning-border)}.card-warn h2{color:var(--color-warning-text)}.card-info{background:var(--color-info-surface-soft);border-color:var(--color-info-border)}.card-info h2,.card-info .lead{color:var(--color-primary-text)}.card-sunken{background:var(--color-surface-sunken)}.card-empty{align-items:center;text-align:center;gap:var(--space-4);padding:var(--space-12) var(--space-6);border-style:dashed;border-color:var(--color-border-control);background:var(--color-surface-sunken)}.card-empty.drop{border-color:var(--color-border-focus);background:var(--color-primary-surface);gap:var(--space-5)}.card-empty.drop h2{color:var(--color-primary-text)}.card-add{align-items:center;gap:var(--space-3);padding:var(--space-6);border-style:dashed;border-color:var(--color-border-control);background:var(--color-surface-sunken)}.card-dark{background:var(--color-surface-inverse);border-color:var(--color-surface-inverse);color:var(--color-text-on-primary);gap:var(--space-5);padding:var(--space-8)}.card-dark h2{color:var(--color-text-on-primary)}.card-dark .lead,.card-dark .note{color:var(--color-text-on-primary-muted)}.btn{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:1;padding:var(--space-4) var(--space-5);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:var(--space-2)}.btn:hover:not(:disabled){background:var(--color-surface-hover)}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-on-primary);font-weight:var(--font-weight-semibold)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-lg{padding:var(--space-4) var(--space-7);font-size:var(--font-size-lg)}.btn-sm{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs)}.btn-quiet{color:var(--color-text-muted)}.btn-on-dark{background:var(--color-surface);border-color:var(--color-surface);color:var(--color-surface-inverse);font-weight:var(--font-weight-semibold)}.btn-on-dark-ghost{background:transparent;border-color:var(--color-border-on-primary);color:var(--color-text-on-primary)}.btn-on-dark-ghost:hover:not(:disabled){background:transparent;border-color:var(--color-text-on-primary)}.btn:disabled{background:var(--color-surface-muted);border-color:var(--color-border);color:var(--color-text-disabled);cursor:default}.back-link{border:0;background:none;padding:0;color:var(--color-primary);font-size:var(--font-size-base);cursor:pointer;text-align:left;width:fit-content}.back-link:hover{color:var(--color-primary-hover)}.actions{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}.notice{background:var(--color-primary-surface);color:var(--color-primary-text);border:var(--border-width) solid var(--color-primary-border);border-radius:var(--radius-md);padding:var(--space-4);white-space:pre-line}.notice-error{background:var(--color-warning-surface-soft);color:var(--color-warning-text);border-color:var(--color-warning-border)}.privacy{background:var(--color-surface);border:var(--border-width) solid var(--color-info-border);border-radius:var(--radius-md);padding:var(--space-4);color:var(--color-primary-text);font-size:var(--font-size-sm)}.steps{display:flex;flex-direction:column;gap:var(--space-3)}.step{display:flex;align-items:center;gap:var(--space-3)}.step-text{font-size:var(--font-size-md);line-height:var(--line-height-relaxed)}.step-sub{color:var(--color-text-muted);font-size:var(--font-size-sm)}.step-off .step-text{color:var(--color-text-muted)}.icon{width:22px;height:22px;flex:none;border-radius:var(--radius-circle);display:grid;place-items:center;font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);line-height:1}.icon-ok{background:var(--color-success-surface);color:var(--color-success)}.icon-warn{background:var(--color-warning-surface);color:var(--color-warning)}.icon-off{background:var(--color-status-neutral-surface);color:var(--color-text-subtle)}.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);line-height:var(--line-height-snug)}.tone-neutral{background:var(--color-status-neutral-surface);color:var(--color-status-neutral)}.tone-warn{background:var(--color-warning-surface);color:var(--color-warning)}.tone-warn-solid{background:var(--color-warning);color:var(--color-text-on-primary)}.tone-info{background:var(--color-info-surface);color:var(--color-info)}.tone-danger{background:var(--color-danger-surface);color:var(--color-danger)}.tone-done{background:var(--color-success-surface);color:var(--color-success)}.issue-head{display:flex;align-items:center;justify-content:space-between}.issue-rows{display:flex;flex-direction:column;gap:var(--space-3);max-width:380px}.issue-rows-wide{max-width:none}.issue-row{display:flex;justify-content:space-between;gap:var(--space-3)}.divider{height:var(--border-width);background:var(--color-border);border:0;margin:0}.list{list-style:none;padding:0;margin:0}.row-divided{border-bottom:var(--border-width) solid var(--color-border-subtle)}.row-divided:last-child{border-bottom:0}.vendor-row{display:grid;grid-template-columns:26px 1fr auto 58px;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-2);border-bottom:var(--border-width) solid var(--color-border-subtle)}.vendor-row.vendor-row-export{grid-template-columns:minmax(0,1fr) auto auto}.vendor-row.vendor-row-export .count{margin-left:0}.vendor-row:last-child{border-bottom:0}.file-row{display:grid;grid-template-columns:26px minmax(0,1fr) auto auto;align-items:center;gap:var(--space-3);padding:var(--space-4) 0;border-bottom:var(--border-width) solid var(--color-border-subtle)}.file-row:last-child{border-bottom:0}.file-name{overflow-wrap:anywhere}.count{margin-left:auto;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.wait-dots{display:flex;gap:var(--space-2);align-items:center}.wait-dots span{width:8px;height:8px;border-radius:var(--radius-circle);background:var(--color-border-focus)}.wait-dots span:nth-child(2){background:var(--color-primary-muted)}.wait-dots span:nth-child(3){background:var(--color-primary-border)}.option{display:flex;align-items:center;gap:var(--space-4);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);cursor:pointer;background:var(--color-surface);text-align:left;width:100%;font:inherit;color:inherit}.option:hover:not(:disabled){border-color:var(--color-border-focus)}.option.selected{border-color:var(--color-border-focus);background:var(--color-surface-selected)}.option:disabled{border-color:var(--color-border-subtle);opacity:.5;cursor:default}.option-body{flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);min-width:0}.option-title{font-weight:var(--font-weight-medium)}.option-list{display:flex;flex-direction:column;gap:var(--space-3)}.radio{width:19px;height:19px;flex:none;border-radius:var(--radius-circle);border:var(--border-width-thick) solid var(--color-border-control);background:transparent}.option.selected .radio,.radio.on{border-color:var(--color-primary);box-shadow:inset 0 0 0 4px var(--color-surface),inset 0 0 0 11px var(--color-primary)}.checkline{display:flex;align-items:center;gap:var(--space-3);cursor:pointer;font-size:var(--font-size-base)}.checkline input,.checkline-box{width:19px;height:19px;flex:none;accent-color:var(--color-primary)}.field{border:var(--border-width) solid var(--color-border-control);border-radius:var(--radius-md);background:var(--color-surface);padding:var(--space-3) var(--space-4);font-size:var(--font-size-base);line-height:var(--line-height-tight);color:var(--color-text);width:100%}.field:focus{outline:2px solid var(--color-border-focus);outline-offset:0;border-color:var(--color-border-focus)}.field-qty{width:96px;text-align:center}.search-row{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.search-row .field{width:400px;max-width:100%}.data-table{width:100%;border-collapse:collapse;font-size:var(--font-size-base);line-height:var(--line-height-base)}.data-table th{text-align:left;font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);line-height:1;color:var(--color-text-muted);padding:0 var(--space-3) var(--space-3);border-bottom:var(--border-width) solid var(--color-border)}.data-table td{padding:var(--space-4) var(--space-3);border-bottom:var(--border-width) solid var(--color-border-subtle)}.data-table tr{cursor:pointer}.data-table tr.pick{background:var(--color-surface-selected)}.table-wrap{overflow-x:auto}.detail{margin-top:var(--space-1);background:var(--color-surface-selected);border-radius:var(--radius-md);padding:var(--space-5) var(--space-6);display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-5)}.detail-label{font-size:var(--font-size-2xs);color:var(--color-text-muted);margin:0 0 var(--space-1)}.review-row{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-6)}.review-row .title{flex:1;font-size:var(--font-size-md);font-weight:var(--font-weight-medium)}.review-row .title.done{color:var(--color-text-muted);font-weight:var(--font-weight-regular)}.crumb{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-muted)}.subject-grid{display:grid;grid-template-columns:96px 1fr;gap:var(--space-3) var(--space-5)}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6)}.stat{display:flex;flex-direction:column;gap:var(--space-2)}.stat-label{font-size:var(--font-size-xs);color:var(--color-text-muted);margin:0}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);display:grid;place-items:center;z-index:20;padding:var(--space-6)}.modal{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-7);width:430px;max-width:100%;display:flex;flex-direction:column;gap:var(--space-4)}.modal h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.modal-actions{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-1)}.modal-actions .btn{justify-content:center}.modal-actions-inline{flex-direction:row;justify-content:flex-end;gap:var(--space-3)}.help-list{padding:var(--space-2) var(--space-6);gap:0}.help-item{border-bottom:var(--border-width) solid var(--color-border-subtle)}.help-item:last-child{border-bottom:0}.help-item summary{cursor:pointer;padding:var(--space-5) 0;font-weight:var(--font-weight-semibold);list-style:none}.help-item summary::-webkit-details-marker{display:none}.help-item p{margin:0 0 var(--space-6);color:var(--color-text);font-size:var(--font-size-base);line-height:var(--line-height-relaxed)}@keyframes fade-in-row{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.row-new{animation:fade-in-row .35s ease both}
