:root{--bg: #f6f7fb;--surface: #ffffff;--fg: #1a1f2e;--muted-bg: #f0f2f8;--muted-fg: #64748b;--border: #e2e8f0;--border-strong: #ccd1de;--primary: #01a982;--primary-hover: color-mix(in srgb, var(--primary) 88%, black);--primary-soft: color-mix(in srgb, var(--primary) 12%, white);--primary-strong: color-mix(in srgb, var(--primary) 75%, black);--danger: #d83a52;--danger-hover: color-mix(in srgb, var(--danger) 85%, black);--success: #1f9f6e;--warning: #d59800;--info: #1e88e5;--space-1: .25rem;--space-2: .5rem;--space-3: 1rem;--space-4: 1.5rem;--space-5: 2rem;--space-6: 3rem;--radius-sm: .25rem;--radius: .5rem;--radius-lg: 1rem;--radius-full: 9999px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Pretendard", "Apple SD Gothic Neo", "Malgun Gothic", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .875rem;--text-lg: 1rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--shadow-sm: 0 1px 2px rgb(20 26 50 / .06);--shadow: 0 4px 14px rgb(20 26 50 / .08);--shadow-lg: 0 18px 44px rgb(20 26 50 / .18);--transition-fast: .1s ease;--transition: .15s ease;--transition-slow: .3s ease;--sidebar-w: 264px;--topbar-h: 64px;--pager-h: 56px;--drawer-w: 560px}[data-theme=dark]{--bg: #0f172a;--surface: #1e293b;--fg: #f8fafc;--muted-bg: #1e293b;--muted-fg: #94a3b8;--border: #334155;--border-strong: #475569;--primary: #34d399;--primary-soft: color-mix(in srgb, var(--primary) 18%, transparent);--shadow-sm: 0 1px 2px rgb(0 0 0 / .3);--shadow: 0 4px 6px -1px rgb(0 0 0 / .4), 0 2px 4px -2px rgb(0 0 0 / .3);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .5), 0 4px 6px -4px rgb(0 0 0 / .4)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:1.45;color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased}#app{height:100%}button{font:inherit;cursor:pointer}input,textarea,select{font:inherit}img,video{max-width:100%;display:block}.hidden{display:none!important}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;height:100vh}.main{display:grid;grid-template-rows:var(--topbar-h) 1fr var(--pager-h);min-width:0}.sidebar{background:#11141d;color:#d6d9e3;display:flex;flex-direction:column;border-right:1px solid #1d2230}.sidebar-header{padding:18px 18px 14px;border-bottom:1px solid #1d2230}.logo{display:flex;align-items:center;gap:var(--space-2)}.logo-mark{font-size:28px;color:var(--primary);line-height:1}.logo-text{font-size:var(--text-base);font-weight:600;color:#fff}.logo-text small{font-size:var(--text-xs);font-weight:400;color:#98a0b3}.sidebar-nav{flex:1;overflow-y:auto;padding:10px 0}.sidebar-nav::-webkit-scrollbar{width:8px}.sidebar-nav::-webkit-scrollbar-thumb{background:#2a3142;border-radius:4px}.sidebar-loading{padding:14px 18px;color:#98a0b3;font-size:var(--text-xs)}.nav-group{margin:var(--space-1) 0 var(--space-3)}.nav-group-title{padding:10px 18px 4px;font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#6b7385}.nav-item{display:flex;align-items:center;justify-content:space-between;padding:7px 18px;cursor:pointer;border-left:2px solid transparent;color:#aab0c0;font-size:var(--text-sm);transition:background var(--transition-fast),color var(--transition-fast)}.nav-item:hover{background:#181c27;color:#e8eaf2}.nav-item.active{background:#1c2335;color:#fff;border-left-color:var(--primary);font-weight:500}.nav-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-footer{padding:12px 18px;border-top:1px solid #1d2230;font-size:11px;color:#98a0b3}.api-status{display:inline-flex;align-items:center;gap:6px}.api-status .dot{width:8px;height:8px;border-radius:50%;background:#98a0b3}.api-status.ok .dot{background:var(--success)}.api-status.err .dot{background:var(--danger)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:0 22px;background:var(--surface);border-bottom:1px solid var(--border)}.topbar-left{display:flex;flex-direction:column;gap:2px}.page-title{margin:0;font-size:var(--text-lg);font-weight:600}.page-subtitle{font-size:var(--text-xs);color:var(--muted-fg)}.topbar-right{display:flex;align-items:center;gap:var(--space-2)}.search-wrap{position:relative}.search-input{width:320px;height:36px;padding:0 32px 0 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--muted-bg);font-size:var(--text-sm);transition:border var(--transition),background var(--transition)}.search-input:focus{outline:none;border-color:var(--primary);background:var(--surface)}.search-hint{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:11px;color:var(--muted-fg);background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:1px 5px}.btn-ghost{display:inline-flex;align-items:center;justify-content:center;height:34px;min-width:34px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--fg);font-size:var(--text-sm);line-height:1;text-decoration:none;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}a.btn-ghost,a.btn-ghost:visited{color:var(--fg);text-decoration:none}.btn-ghost:hover:not(:disabled){background:var(--muted-bg);border-color:var(--border-strong)}.btn-ghost:disabled{opacity:.4;cursor:not-allowed}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:16px 0 8px;margin-top:8px;border-top:1px solid var(--border)}.btn-icon{width:32px;height:32px;border:none;background:transparent;color:var(--muted-fg);border-radius:var(--radius-sm);font-size:var(--text-lg)}.btn-icon:hover{background:var(--muted-bg);color:var(--fg)}.grid-wrap{background:var(--surface);margin:12px 16px 0;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;position:relative;min-height:0;display:flex;flex-direction:column}.grid-scroll{flex:1;overflow:auto;position:relative}.grid-scroll::-webkit-scrollbar{height:10px;width:10px}.grid-scroll::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:5px}.grid{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--text-sm)}.grid thead th{position:sticky;top:0;z-index:2;background:var(--muted-bg);border-bottom:1px solid var(--border);text-align:left;padding:10px 12px;font-weight:600;font-size:11.5px;color:var(--muted-fg);letter-spacing:.02em;white-space:nowrap;user-select:none}.grid thead th[data-action=sort]{cursor:pointer}.grid thead th[data-action=sort]:hover{background:color-mix(in srgb,var(--muted-bg) 70%,var(--primary));color:var(--fg)}.grid thead th .sort-arrow{font-size:10px;margin-left:4px;color:var(--muted-fg);opacity:.5}.grid thead th.sorted .sort-arrow{color:var(--primary);opacity:1}.grid tbody td{padding:9px 12px;border-bottom:1px solid var(--border);vertical-align:top;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid tbody tr{cursor:pointer;transition:background .08s}.grid tbody tr:hover{background:var(--primary-soft)}.cell-mono{font-family:var(--font-mono);font-size:11.5px}.cell-numeric{display:block;text-align:center;font-variant-numeric:tabular-nums}.grid thead th[data-type=num]{text-align:center}.cell-bool{display:inline-block;text-align:center;font-size:14px}.cell-bool.true{color:var(--success)}.cell-bool.false{color:var(--muted-fg);opacity:.6}.cell-empty{color:var(--muted-fg);opacity:.5}.chip{display:inline-block;background:var(--muted-bg);border:1px solid var(--border);border-radius:10px;padding:1px 8px;font-size:11px;color:var(--fg);margin-right:4px;line-height:1.6}.chip-primary{background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 30%,transparent);color:var(--primary-strong)}.chip-success{background:color-mix(in srgb,var(--success) 14%,white);border-color:color-mix(in srgb,var(--success) 30%,transparent);color:color-mix(in srgb,var(--success) 80%,black)}.chip-warning{background:color-mix(in srgb,var(--warning) 18%,white);border-color:color-mix(in srgb,var(--warning) 30%,transparent);color:color-mix(in srgb,var(--warning) 80%,black)}.chip-muted{opacity:.7}.chip-json{background:#232a3a;border-color:#232a3a;color:#d4daff;cursor:pointer}.grid-empty{padding:40px 20px;text-align:center;color:var(--muted-fg)}.grid-loading{position:absolute;inset:0;background:#ffffffb8;display:none;align-items:center;justify-content:center;gap:var(--space-2);color:var(--muted-fg);z-index:5}.grid-wrap.is-loading .grid-loading{display:flex}.spinner{width:18px;height:18px;border:2px solid var(--border-strong);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.grid-error{margin:20px;padding:14px 16px;background:color-mix(in srgb,var(--danger) 12%,white);border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);color:color-mix(in srgb,var(--danger) 75%,black);border-radius:var(--radius);font-size:var(--text-sm)}.pager{display:flex;align-items:center;justify-content:space-between;padding:0 22px;background:var(--surface);border-top:1px solid var(--border)}.pager-info{font-size:var(--text-xs);color:var(--muted-fg)}.pager-controls{display:flex;align-items:center;gap:6px}.page-size{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--muted-fg);margin-right:6px}.page-size select{height:30px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 8px;background:var(--surface);font-size:var(--text-xs)}.page-indicator{font-size:var(--text-xs);color:var(--fg);min-width:88px;text-align:center;font-variant-numeric:tabular-nums}.drawer{position:fixed;inset:0;z-index:100}.drawer-overlay{position:absolute;inset:0;background:#0f121e5c;backdrop-filter:blur(2px);animation:fadein .18s ease}.drawer-panel{position:absolute;top:0;right:0;height:100%;width:var(--drawer-w);max-width:92vw;background:var(--surface);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:slidein .22s ease}@keyframes fadein{0%{opacity:0}to{opacity:1}}@keyframes slidein{0%{transform:translate(40px);opacity:0}to{transform:translate(0);opacity:1}}.drawer-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2)}.drawer-title{margin:0 0 2px;font-size:var(--text-lg);font-weight:600}.drawer-subtitle{font-size:var(--text-xs);color:var(--muted-fg);font-family:var(--font-mono)}.drawer-body{overflow-y:auto;padding:4px 0;flex:1}.drawer-section{padding:12px 20px;border-bottom:1px solid var(--border)}.drawer-section:last-child{border-bottom:0}.drawer-section-title{margin:0 0 10px;font-size:var(--text-sm);font-weight:600;color:var(--muted-fg);letter-spacing:.02em}.drawer-table{width:100%;border-collapse:collapse;font-size:var(--text-xs)}.drawer-table thead th{text-align:left;padding:6px 8px;background:var(--muted-bg);color:var(--muted-fg);font-weight:600;font-size:10.5px;border-bottom:1px solid var(--border)}.drawer-table tbody td{padding:6px 8px;border-bottom:1px solid color-mix(in srgb,var(--border) 50%,transparent);vertical-align:top}.drawer-prose{margin:0;padding:8px 10px;background:var(--muted-bg);border-radius:var(--radius);font-family:inherit;font-size:var(--text-sm);white-space:pre-wrap;word-break:break-word}.kv-row{display:grid;grid-template-columns:200px 1fr;gap:12px;padding:5px 0;font-size:var(--text-sm);align-items:start}.kv-row:not(:last-child){border-bottom:1px dashed var(--border)}.kv-key{color:var(--muted-fg);font-weight:500}.kv-key-raw{display:block;font-family:var(--font-mono);font-size:10.5px;opacity:.6;margin-top:2px}.kv-val{word-break:break-word;white-space:pre-wrap}.kv-val pre{margin:4px 0 0;background:var(--muted-bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;font-family:var(--font-mono);font-size:11.5px;overflow-x:auto;white-space:pre;max-height:280px;overflow-y:auto}.app-shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.route-outlet{min-width:0;display:block}.app-sidebar{background:#11141d;color:#d6d9e3;display:flex;flex-direction:column;border-right:1px solid #1d2230;position:sticky;top:0;height:100vh}.app-sidebar-header{padding:18px 18px 14px;border-bottom:1px solid #1d2230}.app-logo{display:flex;align-items:center;gap:var(--space-2)}.app-logo-mark{font-size:28px;color:var(--primary);line-height:1}.app-logo-text{font-size:var(--text-base);font-weight:600;color:#fff}.app-logo-text small{font-size:var(--text-xs);font-weight:400;color:#98a0b3}.app-sidebar-nav{flex:1;overflow-y:auto;padding:10px 0;display:flex;flex-direction:column}.app-nav-item{display:flex;align-items:center;gap:10px;padding:10px 18px;text-decoration:none;color:#aab0c0;font-size:var(--text-sm);border-left:3px solid transparent;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.app-nav-item:hover{background:#181c27;color:#e8eaf2}.app-nav-item.active{background:#1c2335;color:#fff;border-left-color:var(--primary);font-weight:500}.app-nav-icon{font-size:16px;width:20px;text-align:center}.app-sidebar-footer{padding:12px 18px;border-top:1px solid #1d2230;font-size:11px;color:#98a0b3}.page{display:flex;flex-direction:column;min-height:100vh;padding:0}.page-header{padding:24px 28px 12px;background:var(--surface);border-bottom:1px solid var(--border)}.page-header h1{margin:0;font-size:var(--text-xl);font-weight:600}.page-body{flex:1;padding:24px 28px}.placeholder-card{max-width:640px;margin:0 auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 32px;box-shadow:var(--shadow-sm)}.placeholder-card h2{margin:0 0 12px;font-size:var(--text-lg);color:var(--primary)}.placeholder-card ul{margin:8px 0 0;padding-left:20px;color:var(--muted-fg);line-height:1.8}.placeholder-hint{margin-top:18px;padding-top:14px;border-top:1px dashed var(--border);font-size:var(--text-xs);color:var(--muted-fg)}.page-404{display:grid;place-items:center;min-height:100vh;background:var(--bg)}.not-found{text-align:center;padding:40px}.not-found h1{font-size:80px;margin:0;color:var(--primary)}.not-found p{margin:12px 0 24px;color:var(--muted-fg)}.page-route-error{display:grid;place-items:center;min-height:calc(100vh - 80px);padding:40px 20px}.route-error{text-align:center;max-width:480px}.route-error-code{font-size:56px;font-weight:700;color:var(--primary, #01a982);letter-spacing:-1px;margin-bottom:8px}.route-error-title{font-size:22px;font-weight:600;margin:0 0 8px;color:var(--text, #111827)}.route-error-subtitle{font-size:14px;color:var(--muted-fg, #6b7280);margin:0 0 28px;line-height:1.5}.route-error-actions{display:flex;gap:12px;justify-content:center;margin-bottom:24px}.route-error-actions .btn-secondary{padding:10px 20px;background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:var(--radius, 6px);color:var(--text, #111827);font-weight:500;cursor:pointer;transition:background var(--transition-fast, .15s)}.route-error-actions .btn-secondary:hover{background:var(--muted-bg, #f9fafb)}.route-error-detail{font-size:12px;text-align:left;margin-top:16px;color:var(--muted-fg, #6b7280)}.route-error-detail summary{cursor:pointer;user-select:none;margin-bottom:8px}.route-error-detail pre{background:var(--muted-bg, #f9fafb);border:1px solid var(--border, #e5e7eb);border-radius:4px;padding:8px 12px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;white-space:pre-wrap;word-break:break-word;margin:0;color:var(--text, #111827)}.btn-primary{display:inline-block;padding:10px 20px;background:var(--primary);color:#fff;text-decoration:none;border-radius:var(--radius);font-weight:500;transition:background var(--transition-fast)}a.btn-primary,a.btn-primary:visited{color:#fff;text-decoration:none}.btn-primary:hover{background:var(--primary-hover)}.page-catalog{display:grid;grid-template-columns:240px 1fr;height:100vh;padding:0}.catalog-sidebar{background:var(--muted-bg);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.catalog-sidebar-header{padding:14px 16px;border-bottom:1px solid var(--border)}.catalog-sidebar-title{font-size:var(--text-sm);font-weight:600;color:var(--muted-fg)}.catalog-sidebar-nav{flex:1;overflow-y:auto;padding:8px 0}.catalog-sidebar-nav .nav-group{margin-bottom:var(--space-2)}.catalog-sidebar-nav .nav-group-title{padding:10px 16px 4px;font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-fg)}.catalog-sidebar-nav .nav-item{display:block;padding:6px 16px;text-decoration:none;color:var(--fg);font-size:var(--text-sm);border-left:2px solid transparent;transition:background var(--transition-fast),color var(--transition-fast)}.catalog-sidebar-nav .nav-item:hover{background:var(--surface);color:var(--primary-strong)}.catalog-sidebar-nav .nav-item.active{background:var(--surface);color:var(--primary-strong);border-left-color:var(--primary);font-weight:500}.catalog-sidebar-nav .sidebar-loading{padding:14px 16px;color:var(--muted-fg);font-size:var(--text-xs)}.catalog-sidebar-footer{padding:10px 16px;border-top:1px solid var(--border);font-size:11px;color:var(--muted-fg)}.catalog-main{display:grid;grid-template-rows:var(--topbar-h) 1fr var(--pager-h);min-width:0;background:var(--bg)}.catalog-topbar{display:flex;align-items:center;justify-content:space-between;padding:0 22px;background:var(--surface);border-bottom:1px solid var(--border)}.catalog-topbar-left{display:flex;flex-direction:column;gap:2px}.catalog-topbar-right{display:flex;align-items:center;gap:var(--space-2)}@media(max-width:1023px){.app-shell{grid-template-columns:1fr}.app-sidebar{position:fixed;inset:0 auto 0 0;transform:translate(-100%);z-index:100;transition:transform .2s ease}.app-shell.menu-open .app-sidebar{transform:translate(0)}.page-catalog{grid-template-columns:200px 1fr}}@media(max-width:640px){.page-catalog{grid-template-columns:1fr}.catalog-sidebar{display:none}.search-input{width:180px}}.page-rfq-list .page-header,.page-rfq-create .page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.page-rfq-list .page-subtitle,.page-rfq-create .page-subtitle{margin:4px 0 0;color:var(--muted-fg);font-size:var(--text-sm)}.banner{margin:12px 28px 0;padding:10px 14px;border-radius:var(--radius);font-size:var(--text-sm);display:flex;align-items:center;gap:10px}.banner.hidden{display:none}.banner-success{background:color-mix(in srgb,var(--success, #16a34a) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--success, #16a34a) 40%,transparent);color:var(--success, #16a34a)}.banner-error{background:color-mix(in srgb,var(--danger, #dc2626) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--danger, #dc2626) 40%,transparent);color:var(--danger, #dc2626)}.rfq-banner{margin:12px 28px 0;padding:10px 14px;border-radius:var(--radius);background:color-mix(in srgb,var(--danger, #dc2626) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--danger, #dc2626) 40%,transparent);color:var(--danger, #dc2626);font-size:var(--text-sm)}.rfq-banner.hidden{display:none}.btn-link{background:none;border:none;color:inherit;text-decoration:underline;cursor:pointer;font-size:var(--text-sm);padding:0;margin-left:auto}.filter-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px}.filter-tabs{display:inline-flex;background:var(--muted-bg);border-radius:var(--radius);padding:3px;gap:2px}.filter-tab{background:none;border:none;padding:6px 14px;font-size:var(--text-sm);color:var(--muted-fg);cursor:pointer;border-radius:calc(var(--radius) - 3px);transition:background .1s,color .1s}.filter-tab:hover{color:var(--fg)}.filter-tab.active{background:var(--surface);color:var(--primary);font-weight:600;box-shadow:var(--shadow-sm)}.meta-info{color:var(--muted-fg);font-size:var(--text-xs)}.rfq-list-table{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.rfq-list-table th,.rfq-list-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border);font-size:var(--text-sm)}.rfq-list-table th{background:var(--muted-bg);font-weight:600;color:var(--muted-fg);font-size:11.5px}.rfq-list-table th.num,.rfq-list-table td.num{text-align:center;font-variant-numeric:tabular-nums}.rfq-list-table tbody tr{cursor:pointer;transition:background .08s}.rfq-list-table tbody tr:hover{background:var(--primary-soft)}.row-no{text-align:center;color:var(--muted-fg);font-size:12px}.page-rfq-create{padding-bottom:80px}.form-card{margin:16px 28px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 24px;box-shadow:var(--shadow-sm)}.form-card h2{margin:0 0 14px;font-size:var(--text-base);font-weight:600;color:var(--fg)}.form-card h2 small{color:var(--muted-fg);font-weight:400;margin-left:6px;font-size:var(--text-xs)}.form-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.form-card-head h2{margin:0}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.form-field{display:flex;flex-direction:column;gap:4px}.form-field-wide{grid-column:span 3}.form-label{font-size:var(--text-xs);color:var(--muted-fg);font-weight:500}.form-field input[type=text],.form-field input[type=number],.form-field input[type=date],.form-field select,.form-field textarea{border:1px solid var(--border);border-radius:var(--radius);padding:7px 10px;font-size:var(--text-sm);background:var(--surface);color:var(--fg);font-family:inherit}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.form-hint{margin:10px 0 0;color:var(--muted-fg);font-size:var(--text-xs)}.input{box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius);padding:8px 11px;font-size:var(--text-sm);font-family:inherit;line-height:1.4;background:var(--surface);color:var(--fg);transition:border-color .12s ease,box-shadow .12s ease}.input::placeholder{color:var(--muted-fg)}.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.input:disabled{background:var(--surface-muted, #f3f4f6);color:var(--muted-fg);cursor:not-allowed}select.input{cursor:pointer}textarea.input{line-height:1.5;resize:vertical}.rfq-bubble-supplier{font-weight:600}.rfq-bubble-main{display:inline-flex;gap:5px;margin-left:5px}.rfq-bubble-part{white-space:nowrap}.rfq-bubble-tags{margin-left:5px;font-size:11px;color:var(--muted-fg, #6b7280);white-space:nowrap}.rfq-bubble-memo{margin-left:4px;color:var(--muted-fg, #6b7280)}.quote-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}.quote-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.quote-table thead th{background:var(--muted-bg);text-align:left;padding:8px 10px;font-weight:600;font-size:11.5px;color:var(--muted-fg);border-bottom:1px solid var(--border);white-space:nowrap}.quote-table tbody td{padding:5px 6px;border-bottom:1px solid var(--border);vertical-align:middle}.quote-table tbody tr:last-child td{border-bottom:none}.quote-table input,.quote-table select{width:100%;border:1px solid transparent;border-radius:4px;padding:5px 7px;font-size:var(--text-sm);background:var(--surface);color:var(--fg);font-family:inherit;min-width:70px}.quote-table input:hover,.quote-table select:hover{border-color:var(--border)}.quote-table input:focus,.quote-table select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}.quote-table input[type=number]{text-align:center;font-variant-numeric:tabular-nums}.quote-table .row-no{text-align:center;color:var(--muted-fg);font-size:12px;padding:0 8px}.page-rfq-queue{padding:24px;max-width:1280px;margin:0 auto}.rfq-queue-toolbar{display:flex;align-items:flex-end;flex-wrap:wrap;gap:16px 20px;padding:12px 16px;margin:12px 0 20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.rfq-queue-date,.rfq-queue-cat{display:flex;flex-direction:column;gap:4px}.rfq-queue-label{font-size:var(--text-xs);color:var(--muted-fg);font-weight:500}.rfq-queue-date input,.rfq-queue-cat select{padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--fg);font-size:var(--text-sm);font-family:inherit;min-width:160px}.rfq-summary{display:flex;gap:8px;margin-left:auto}.rfq-summary-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:9999px;border:1px solid var(--border);background:var(--surface);color:var(--fg);font-size:var(--text-sm);cursor:pointer;transition:background-color .1s ease,border-color .1s ease}.rfq-summary-chip strong{font-weight:700;font-variant-numeric:tabular-nums}.rfq-summary-chip:hover{background:var(--muted-bg)}.rfq-summary-chip.active{background:var(--fg);color:var(--surface);border-color:var(--fg)}.rfq-summary-chip.is-pending:not(.active){color:#6b7280}.rfq-summary-chip.is-sent:not(.active){color:#2563eb;border-color:color-mix(in srgb,#2563eb 30%,var(--border))}.rfq-summary-chip.is-quoted:not(.active){color:#16a34a;border-color:color-mix(in srgb,#16a34a 30%,var(--border))}.rfq-summary-chip.is-pending.active{background:#6b7280;border-color:#6b7280}.rfq-summary-chip.is-sent.active{background:#2563eb;border-color:#2563eb}.rfq-summary-chip.is-quoted.active{background:#16a34a;border-color:#16a34a}.rfq-group{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;overflow:hidden}.rfq-group-header{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--muted-bg);border-bottom:1px solid var(--border)}.rfq-group-toggle{display:inline-flex;align-items:center;gap:8px;padding:4px 8px;border:none;background:transparent;cursor:pointer;flex:1;text-align:left;font-family:inherit;color:var(--fg)}.rfq-group-toggle:hover{color:var(--accent, #2563eb)}.rfq-group-arrow{font-size:10px;color:var(--muted-fg);width:12px;display:inline-block}.rfq-group-title{font-weight:600;font-size:var(--text-base)}.rfq-group-count{font-size:var(--text-xs);color:var(--muted-fg);padding:2px 8px;background:var(--surface);border:1px solid var(--border);border-radius:9999px}.rfq-group-send-all{padding:8px 14px;font-size:var(--text-sm)}.rfq-group-done{font-size:var(--text-sm);font-style:italic}.rfq-group-body{padding:0}.rfq-queue-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.rfq-queue-table th{text-align:left;font-weight:600;color:var(--muted-fg);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;padding:10px 12px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--muted-bg) 50%,var(--surface))}.rfq-queue-table th.num,.rfq-queue-table td.num{text-align:right;font-variant-numeric:tabular-nums}.rfq-queue-table th.col-actions,.rfq-queue-table td.col-actions{width:110px;text-align:center}.rfq-queue-table td{padding:12px;border-bottom:1px solid var(--border);vertical-align:top}.rfq-queue-row.is-sent{background:color-mix(in srgb,#2563eb 4%,transparent)}.rfq-queue-row.is-quoted{background:color-mix(in srgb,#16a34a 4%,transparent)}.rfq-row-desc{margin-top:4px;font-size:var(--text-xs);color:var(--muted-fg)}.rfq-chip{display:inline-block;padding:3px 10px;border-radius:9999px;font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;white-space:nowrap}.rfq-chip.is-pending{background:color-mix(in srgb,#6b7280 12%,transparent);color:#4b5563;border:1px solid color-mix(in srgb,#6b7280 25%,transparent)}.rfq-chip.is-sent{background:#2563eb;color:#fff}.rfq-chip.is-quoted{background:#16a34a;color:#fff}.btn-link{background:none;border:none;padding:0;color:var(--accent, #2563eb);cursor:pointer;font-family:inherit;font-size:inherit;text-decoration:underline;text-underline-offset:2px}.btn-link:hover{color:var(--primary-hover, #1d4ed8)}.rfq-queue-table .dim,.rfq-modal .dim,.placeholder-card .dim{color:var(--muted-fg);font-size:var(--text-xs)}.rfq-modal{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center}.rfq-modal-overlay{position:absolute;inset:0;background:#00000073}.rfq-modal-panel{position:relative;width:min(560px,92vw);max-height:86vh;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 20px 60px #0000004d}.rfq-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.rfq-modal-header h3{margin:0;font-size:var(--text-lg, 1.1rem);font-weight:600}.rfq-modal-body{padding:16px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.rfq-modal-section{display:flex;flex-direction:column;gap:6px}.rfq-modal-preview{margin:0;padding:8px 12px;list-style:none;background:var(--muted-bg);border:1px solid var(--border);border-radius:var(--radius);max-height:140px;overflow-y:auto;font-size:var(--text-sm)}.rfq-modal-preview li{padding:4px 0;border-bottom:1px dashed var(--border)}.rfq-modal-preview li:last-child{border-bottom:none}.rfq-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--border);background:color-mix(in srgb,var(--muted-bg) 30%,var(--surface))}.quote-table .btn-icon{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;border:1px solid transparent;background:none;color:var(--muted-fg);cursor:pointer;font-size:16px}.quote-table .btn-icon:hover{background:color-mix(in srgb,var(--danger, #dc2626) 12%,transparent);color:var(--danger, #dc2626);border-color:color-mix(in srgb,var(--danger, #dc2626) 30%,transparent)}.quote-table .empty-row{text-align:center;padding:28px;color:var(--muted-fg)}.btn-secondary{border:1px solid var(--primary);background:var(--surface);color:var(--primary);padding:6px 14px;border-radius:var(--radius);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:background .1s,color .1s}.btn-secondary:hover{background:var(--primary-soft)}.page-footer{position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--border);padding:14px 28px;display:flex;justify-content:flex-end;gap:10px;z-index:5}button.btn-primary{border:none;cursor:pointer;font-size:var(--text-sm);font-family:inherit}button.btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:900px){.form-grid{grid-template-columns:1fr 1fr}.form-field-wide{grid-column:span 2}}@media(max-width:600px){.form-grid{grid-template-columns:1fr}.form-field-wide{grid-column:span 1}}.catalog-sidebar-nav .nav-group-search{margin:6px 8px 12px;padding:0 0 10px;border-bottom:1px solid var(--border)}.catalog-sidebar-nav .nav-item-search{border-left:2px solid transparent;border-radius:var(--radius);padding:8px 12px;font-weight:500;background:color-mix(in srgb,var(--primary-soft) 60%,transparent)}.catalog-sidebar-nav .nav-item-search:hover{background:var(--primary-soft)}.catalog-sidebar-nav .nav-item-search.active{background:var(--primary-soft);color:var(--primary-strong);border-left-color:var(--primary)}.page-catalog-search .search-wrap-wide .search-input{width:340px;max-width:50vw}.search-subtitle.status-loading{color:var(--primary-strong)}.search-subtitle.status-err{color:var(--danger, #dc2626)}.search-grid thead th.col-source{width:150px}.search-grid thead th.col-option-part{width:220px}.search-grid tbody td.col-extras{white-space:normal;max-width:none;color:var(--muted-fg);font-size:12px;line-height:1.5}.source-chip{background:color-mix(in srgb,var(--primary-soft) 80%,transparent);color:var(--primary-strong);border:1px solid color-mix(in srgb,var(--primary) 25%,transparent);font-size:11px;font-weight:500}.extra-pair{display:inline-block;margin-right:2px}.extra-key{color:var(--fg);font-weight:500;margin-right:4px}.extra-sep{color:var(--border);margin:0 2px}@media(max-width:800px){.page-catalog-search .search-wrap-wide .search-input{width:200px}}.autocomplete-wrap{position:relative;display:inline-block;width:100%}.autocomplete-input{width:100%;height:36px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--fg);font-size:var(--text-sm);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.autocomplete-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.autocomplete-listbox{position:absolute;top:calc(100% + 2px);left:0;right:0;z-index:50;max-height:320px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 16px #00000014;font-size:var(--text-sm)}.autocomplete-item{padding:8px 12px;cursor:pointer;user-select:none;border-left:2px solid transparent;transition:background var(--transition-fast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.autocomplete-item.active,.autocomplete-item:hover{background:var(--primary-soft);border-left-color:var(--primary)}.autocomplete-item .ac-dim{color:var(--muted-fg);font-size:11.5px;margin-left:6px}.autocomplete-separator{height:1px;background:var(--border);margin:4px 0}.autocomplete-free-text{color:var(--primary-strong);font-weight:500}.autocomplete-status{padding:8px 12px;color:var(--muted-fg);font-size:var(--text-xs);font-style:italic}.datasheet{position:relative;width:100%;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:visible}.datasheet-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.datasheet-thead{background:var(--muted-bg)}.datasheet-thead th{padding:8px 10px;text-align:left;font-size:11.5px;font-weight:600;letter-spacing:.02em;color:var(--muted-fg);border-bottom:1px solid var(--border);user-select:none}.datasheet-col-num,.datasheet-cell-num{width:36px;text-align:center;color:var(--muted-fg);font-variant-numeric:tabular-nums;font-size:11.5px;padding:6px 4px;background:var(--muted-bg);border-right:1px solid var(--border)}.datasheet-col-actions,.datasheet-cell-actions{width:56px;padding:0 4px;text-align:center;white-space:nowrap}.datasheet-rowadd-btn,.datasheet-rowdelete-btn{visibility:hidden;width:22px;height:22px;border:0;border-radius:50%;background:transparent;cursor:pointer;font-size:13px;line-height:1;transition:background var(--transition-fast),color var(--transition-fast);padding:0}.datasheet-rowadd-btn{color:var(--primary-strong)}.datasheet-rowadd-btn:hover{background:var(--primary-soft)}.datasheet-row{border-bottom:1px solid var(--border);transition:background var(--transition-fast)}.datasheet-row.active{background:color-mix(in srgb,var(--primary-soft) 30%,transparent)}.datasheet-row:hover .datasheet-rowadd-btn,.datasheet-row:hover .datasheet-rowdelete-btn,.datasheet-row.active .datasheet-rowadd-btn,.datasheet-row.active .datasheet-rowdelete-btn{visibility:visible}.datasheet-cell{padding:0;border-right:1px solid color-mix(in srgb,var(--border) 50%,transparent);position:relative}.datasheet-cell.active{outline:2px solid var(--primary);outline-offset:-2px;z-index:1}.datasheet-cell.active.editing{outline-color:var(--primary-strong);outline-width:3px}.datasheet-input{caret-color:transparent}.datasheet-cell.editing .datasheet-input{caret-color:auto}.datasheet-cell.selected{background:color-mix(in srgb,var(--primary-soft) 70%,transparent)}.datasheet-cell.selected.active{background:color-mix(in srgb,var(--primary-soft) 100%,transparent)}.datasheet-cell.center{text-align:center}.datasheet-cell.right{text-align:right}.datasheet-input{width:100%;height:32px;padding:0 8px;border:0;background:transparent;color:var(--fg);font-size:var(--text-sm);outline:none;font-family:inherit}.datasheet-input:focus{background:var(--surface)}.datasheet-cell-dropdown select.datasheet-input{appearance:auto;padding-right:24px;cursor:pointer}.datasheet-cell-number .datasheet-input{text-align:center;font-variant-numeric:tabular-nums}.datasheet-match-ok{position:absolute;right:6px;top:50%;transform:translateY(-50%);color:var(--success, #16a34a);font-weight:700;pointer-events:none}.datasheet-rowdelete-btn{color:var(--muted-fg);font-size:14px}.datasheet-rowdelete-btn:hover{background:color-mix(in srgb,var(--danger, #dc2626) 12%,transparent);color:var(--danger, #dc2626)}.datasheet-search-listbox{position:fixed;z-index:200;max-height:280px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 16px #0000001f;font-size:var(--text-sm)}.datasheet-hint{margin:8px 0 0;font-size:var(--text-xs);color:var(--muted-fg);line-height:1.6}.datasheet-cell-toggle{text-align:center;padding:0}.datasheet-toggle{position:relative;display:inline-block;width:38px;height:20px;padding:0;margin:0;border:none;background:transparent;cursor:pointer;vertical-align:middle;outline:none;-webkit-tap-highlight-color:transparent}.datasheet-toggle-track{position:absolute;inset:2px 0;border-radius:9999px;background:color-mix(in srgb,var(--muted-fg) 40%,transparent);transition:background-color .14s ease}.datasheet-toggle-thumb{position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .14s ease,background-color .14s ease}.datasheet-toggle.on .datasheet-toggle-track{background:var(--accent, #2563eb)}.datasheet-toggle.on .datasheet-toggle-thumb{transform:translate(18px)}.datasheet-toggle:focus-visible .datasheet-toggle-track{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent, #2563eb) 40%,transparent)}.datasheet-cell-readonly{background:color-mix(in srgb,var(--muted-fg) 5%,transparent)}.datasheet-readonly{display:block;padding:6px 10px;font-size:var(--text-sm);color:var(--muted-fg);font-variant-numeric:tabular-nums;text-align:inherit;outline:none;user-select:none;cursor:default}.datasheet-cell-readonly.center .datasheet-readonly{text-align:center}.datasheet-cell-readonly.right .datasheet-readonly{text-align:right}.chip-on{background:color-mix(in srgb,var(--accent, #2563eb) 12%,transparent);color:var(--accent, #2563eb);border-color:color-mix(in srgb,var(--accent, #2563eb) 28%,transparent);font-weight:600}.grid th.col-actions,.grid td.col-actions{width:78px;text-align:center;white-space:nowrap}.btn-row-edit{padding:4px 10px;font-size:var(--text-xs);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--fg);cursor:pointer;line-height:1.2;transition:background-color .1s ease,border-color .1s ease}.btn-row-edit:hover{background:color-mix(in srgb,var(--accent, #2563eb) 8%,var(--surface));border-color:color-mix(in srgb,var(--accent, #2563eb) 40%,var(--border));color:var(--accent, #2563eb)}.btn-row-edit:active{transform:translateY(1px)}.datasheet-hint strong{color:var(--fg);font-weight:600;background:var(--muted-bg);padding:1px 6px;border-radius:4px;border:1px solid var(--border);font-family:var(--font-mono);font-size:11px}.page-lead-create,.page-lead-list{padding:24px 28px;max-width:1280px;width:100%}.form-section{margin:20px 0;padding:16px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.form-section-title{margin:0 0 12px;font-size:var(--text-sm);font-weight:600;color:var(--muted-fg);letter-spacing:.02em}.form-section-count{font-weight:400;color:var(--muted-fg);margin-left:6px}.customer-label{display:block;margin-top:4px;color:var(--success, #16a34a);font-size:var(--text-xs);min-height:1em}.form-error{display:block;margin-top:4px;color:var(--danger, #dc2626);font-size:var(--text-xs);min-height:1em}.form-error:empty{display:none}.form-error-banner{margin:12px 0;padding:10px 14px;border-radius:var(--radius);background:color-mix(in srgb,var(--danger, #dc2626) 10%,var(--surface));border-left:3px solid var(--danger, #dc2626);color:var(--fg);font-size:var(--text-sm)}.form-error-banner:empty{display:none}.filter-bar{display:flex;gap:6px;margin:12px 0}.filter-btn{padding:6px 14px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--fg);font-size:var(--text-sm);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.filter-btn:hover{background:var(--muted-bg)}.filter-btn.active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-strong);font-weight:500}.lead-summary{max-width:480px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted-fg)}.page-auth{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:var(--color-bg, #f6f7f9);padding:var(--space-6, 24px)}.auth-card{width:100%;max-width:420px;background:var(--color-surface, #ffffff);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-lg, 12px);box-shadow:var(--shadow-lg, 0 10px 30px rgba(0, 0, 0, .08));padding:var(--space-7, 32px) var(--space-6, 24px)}.auth-card-wide{max-width:480px}.auth-card-header{text-align:center;margin-bottom:var(--space-6, 24px)}.auth-card-header h1{font-size:28px;font-weight:700;letter-spacing:.5px;margin:0 0 var(--space-2, 8px) 0;color:var(--color-text, #111827)}.auth-subtitle{font-size:14px;color:var(--color-text-muted, #6b7280);margin:0}.auth-form{display:flex;flex-direction:column;gap:var(--space-4, 16px)}.auth-field{display:flex;flex-direction:column;gap:var(--space-2, 6px)}.auth-field label{font-size:13px;font-weight:600;color:var(--color-text, #111827)}.auth-field input{font-size:15px;padding:var(--space-3, 10px) var(--space-3, 12px);border:1px solid var(--color-border, #d1d5db);border-radius:var(--radius-md, 8px);background:var(--color-input, #ffffff);color:var(--color-text, #111827);transition:border-color .12s ease,box-shadow .12s ease}.auth-field input:focus{outline:none;border-color:var(--color-primary, #2563eb);box-shadow:0 0 0 3px var(--color-primary-soft, rgba(37, 99, 235, .15))}.auth-field input:disabled{background:var(--color-bg, #f3f4f6);color:var(--color-text-muted, #9ca3af);cursor:not-allowed}.auth-hint{font-size:12px;color:var(--color-text-muted, #6b7280);margin-top:2px}.auth-error{font-size:13px;color:var(--color-danger, #b91c1c);background:var(--color-danger-soft, #fee2e2);border:1px solid var(--color-danger-border, #fca5a5);border-radius:var(--radius-md, 8px);padding:var(--space-3, 10px) var(--space-3, 12px)}.auth-error.hidden{display:none}.auth-field.has-error label{color:var(--color-danger, #b91c1c)}.auth-field.has-error input{border-color:var(--color-danger, #b91c1c);background:var(--color-danger-soft, #fef2f2)}.auth-field.has-error input:focus{border-color:var(--color-danger, #b91c1c);box-shadow:0 0 0 3px #b91c1c26}.auth-submit{margin-top:var(--space-2, 6px);padding:var(--space-3, 12px);font-size:15px;font-weight:600;background:var(--color-primary, #2563eb);color:var(--color-on-primary, #ffffff);border:0;border-radius:var(--radius-md, 8px);cursor:pointer;transition:background .12s ease,transform 80ms ease}.auth-submit:hover:not(:disabled){background:var(--color-primary-hover, #1d4ed8)}.auth-submit:active:not(:disabled){transform:translateY(1px)}.auth-submit:disabled{background:var(--color-disabled, #9ca3af);cursor:not-allowed}.auth-footer{margin-top:var(--space-6, 24px);padding-top:var(--space-4, 16px);border-top:1px solid var(--color-border, #e5e7eb);text-align:center}.auth-footer .auth-hint{font-size:12px;line-height:1.5}.page-deal-list{font-family:-apple-system,BlinkMacSystemFont,Pretendard,Apple SD Gothic Neo,Noto Sans KR,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5;color:var(--c-fg, #1a1a1a)}.page-deal-list .page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}.page-deal-list .page-header h1{margin:0 0 4px;font-size:24px;font-weight:600;letter-spacing:-.3px}.page-deal-list .page-subtitle{margin:0;font-size:13px;color:var(--c-fg-muted, #6b7280)}.page-deal-list .filter-bar{display:flex;gap:8px;align-items:center;margin-bottom:16px;flex-wrap:wrap;padding:10px 12px;background:var(--c-bg-card, #ffffff);border:1px solid var(--c-border, #e5e7eb);border-radius:8px}.page-deal-list .filter-bar-spacer{flex:1}.page-deal-list .filter-btn{padding:6px 14px;border:1px solid var(--c-border, #d1d5db);border-radius:6px;background:#fff;color:#374151;cursor:pointer;font-size:13px;font-weight:500;transition:all .15s}.page-deal-list .filter-btn:hover{background:#f9fafb;border-color:#9ca3af}.page-deal-list .filter-btn.active{background:#2563eb;color:#fff;border-color:#2563eb}.page-deal-list .filter-search{min-width:260px;padding:7px 12px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#1f2937;font-size:13px;outline:none;transition:border-color .15s,box-shadow .15s}.page-deal-list .filter-search::placeholder{color:#9ca3af}.page-deal-list .filter-search:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.page-deal-list .btn-secondary{padding:7px 14px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#1f2937;cursor:pointer;font-size:13px;font-weight:500}.page-deal-list .btn-secondary:hover{background:#f3f4f6}.page-deal-list .grid-wrap{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.page-deal-list .grid-table{width:100%;border-collapse:collapse;font-size:13px}.page-deal-list .grid-table th{padding:10px 14px;text-align:left;font-weight:500;font-size:12px;color:#6b7280;background:#f9fafb;border-bottom:1px solid #e5e7eb;white-space:nowrap}.page-deal-list .grid-table td{padding:12px 14px;border-bottom:1px solid #f3f4f6;vertical-align:middle}.page-deal-list .grid-table tbody tr:last-child td{border-bottom:none}.page-deal-list .grid-table .num{text-align:right;font-variant-numeric:tabular-nums}.grid-table-clickable tbody tr{cursor:pointer;transition:background .1s}.grid-table-clickable tbody tr:hover{background:#f9fafb}.deal-row-name{font-weight:500;color:#111827}.deal-row-cls{display:inline-block;margin-top:4px;padding:2px 8px;font-size:11px;background:#f3f4f6;color:#6b7280;border-radius:10px}.page-deal-list .list-footer{margin-top:12px;padding:0 4px;font-size:12px;color:#6b7280}.page-deal-list .empty{padding:60px 0;text-align:center;color:#9ca3af}.page-deal-list .banner-loading,.page-deal-list .banner-error{padding:10px 14px;border-radius:6px;margin-bottom:10px;font-size:13px}.page-deal-list .banner-loading{background:#f3f4f6;color:#6b7280}.page-deal-list .banner-error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.page-deal-list .banner-loading.hidden,.page-deal-list .banner-error.hidden{display:none}.page-deal-list .chip,.deal-drawer .chip{display:inline-block;padding:3px 10px;font-size:12px;font-weight:500;border-radius:12px;border:1px solid transparent;white-space:nowrap}.chip-primary{background:#dbeafe;color:#1e40af;border-color:#bfdbfe}.chip-info{background:#fef3c7;color:#92400e;border-color:#fde68a}.chip-success{background:#d1fae5;color:#065f46;border-color:#a7f3d0}.chip-warning{background:#fee2e2;color:#991b1b;border-color:#fecaca}.deal-drawer.hidden{display:none}.deal-drawer{position:fixed;inset:0;z-index:100;display:flex;justify-content:flex-end;font-family:inherit}.deal-drawer-backdrop{position:absolute;inset:0;background:#0f172a80;cursor:pointer}.deal-drawer-panel{position:relative;width:min(900px,100vw);height:100vh;background:#fff;color:#1f2937;overflow:hidden;display:flex;flex-direction:column;box-shadow:-8px 0 24px #00000026}.deal-drawer-header{display:flex;align-items:flex-start;justify-content:space-between;padding:18px 22px;border-bottom:1px solid #e5e7eb}.deal-drawer-header h2{margin:0 0 4px;font-size:18px;font-weight:600}.deal-drawer-subtitle{margin:0;font-size:12px;color:#6b7280}.deal-drawer-close{background:none;border:none;font-size:28px;line-height:1;cursor:pointer;color:#9ca3af;padding:0 4px}.deal-drawer-close:hover{color:#1f2937}.deal-drawer-body{flex:1;overflow-y:auto;padding:18px 22px}.deal-drawer-section{margin-bottom:28px}.deal-drawer-section h3{margin:0 0 12px;font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.6px}.badge{display:inline-block;margin-left:8px;padding:2px 8px;font-size:11px;background:#f3f4f6;border-radius:10px;color:#6b7280;font-weight:400}.deal-info-grid{display:grid;grid-template-columns:110px 1fr;gap:10px 16px;margin:0;font-size:13px}.deal-info-grid dt{font-size:12px;color:#6b7280;padding-top:2px}.deal-info-grid dd{margin:0;line-height:1.6}.deal-items-table-wrap{overflow-x:auto}.deal-items-table th,.deal-items-table td{padding:8px 12px;border-bottom:1px solid #f3f4f6;text-align:left}.deal-items-table th{color:#6b7280;font-weight:500;font-size:12px;background:#f9fafb}.deal-items-table .num{text-align:right;font-variant-numeric:tabular-nums}.chat-thread-block{border:1px solid #e5e7eb;border-radius:8px;margin-bottom:14px;background:#fff;overflow:hidden}.chat-thread-header{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#f9fafb;border-bottom:1px solid #e5e7eb;font-size:13px}.chat-msg-list{padding:12px 14px}.chat-msg{margin-bottom:14px;padding:10px 12px;border-radius:8px}.chat-msg-user{background:#eff6ff;border:1px solid #dbeafe}.chat-msg-assistant{background:#f9fafb;border:1px solid #f3f4f6}.chat-msg-header{display:flex;justify-content:space-between;font-size:11px;color:#6b7280;margin-bottom:6px}.chat-msg-role{font-weight:500}.chat-msg-content{font-size:13px;white-space:pre-wrap;word-break:break-word;line-height:1.5}.chat-msg-attachment{margin-top:8px;font-size:12px}.chat-msg-attachment summary{cursor:pointer;color:#6b7280}.chat-msg-attachment pre{background:#0f172a0a;padding:8px;border-radius:4px;white-space:pre-wrap;word-break:break-word;max-height:240px;overflow-y:auto;margin:6px 0 0;font-size:11px}.deal-progress-section{margin-bottom:28px}.deal-progress-header{display:flex;align-items:center;gap:10px;margin-bottom:14px}.deal-status-select{padding:7px 32px 7px 12px;border:1px solid #d1d5db;border-radius:6px;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path fill='%236b7280' d='M6 9L1 4h10z'/></svg>") no-repeat right 10px center;color:#1f2937;font-size:13px;font-weight:500;cursor:pointer;outline:none;appearance:none;-webkit-appearance:none;min-width:160px}.deal-status-select:hover{border-color:#9ca3af}.deal-status-select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.deal-progress-stepper{display:flex;align-items:center;gap:2px;margin-bottom:8px;flex-wrap:nowrap;overflow-x:auto;padding:4px 0}.deal-progress-stepper .step{flex:0 0 auto;width:26px;height:26px;border-radius:50%;border:1.5px solid #d1d5db;background:#fff;color:#9ca3af;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;transition:all .15s;cursor:default}.deal-progress-stepper .step .step-num{line-height:1}.deal-progress-stepper .step.done{background:#2563eb;border-color:#2563eb;color:#fff}.deal-progress-stepper .step.current{background:#dbeafe;border-color:#2563eb;color:#1e40af;box-shadow:0 0 0 3px #2563eb26}.deal-progress-stepper .step-line{flex:1 1 auto;height:2px;background:#e5e7eb;min-width:8px}.deal-progress-meta{margin:6px 0 0}.deal-assignee-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.deal-assignee-select,.deal-meta-select{padding:5px 28px 5px 10px;border:1px solid #d1d5db;border-radius:6px;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path fill='%236b7280' d='M6 9L1 4h10z'/></svg>") no-repeat right 8px center;color:#1f2937;font-size:13px;cursor:pointer;outline:none;appearance:none;-webkit-appearance:none;min-width:130px}.deal-assignee-select:hover,.deal-meta-select:hover{border-color:#9ca3af}.deal-assignee-select:focus,.deal-meta-select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.deal-assignee-label{font-size:13px;color:#4b5563}.deal-assignee-phone-input{padding:5px 10px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#1f2937;font-size:13px;outline:none;min-width:180px}.deal-assignee-phone-input:hover{border-color:#9ca3af}.deal-assignee-phone-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.deal-info-muted{font-size:13px;color:#9ca3af}.deal-inline-edit-row{display:flex;gap:8px;align-items:center;max-width:180px}.deal-inline-edit-row .deal-assignee-phone-input{flex:1 1 auto;min-width:0}.deal-inline-edit-row .btn{flex:0 0 auto;white-space:nowrap}.deal-contact-view{position:relative}.deal-contact-edit-btn{border:0;background:transparent;cursor:pointer;color:#9ca3af;font-size:13px;padding:2px 6px;margin-left:6px;border-radius:5px;vertical-align:baseline}.deal-contact-edit-btn:hover{color:#2563eb;background:#eff6ff}.deal-contact-edit{display:flex;flex-direction:column;gap:6px;max-width:320px}.deal-contact-input{width:100%;font-size:13px;padding:6px 10px}.deal-contact-err{font-size:12px;color:#dc2626}.deal-inline-edit-actions{display:flex;gap:6px;margin-top:2px}.deal-item-menu{position:fixed;z-index:51;min-width:120px;background:#fff;border:1px solid var(--border, #e5e7eb);border-radius:8px;box-shadow:0 8px 24px #00000024;padding:4px}.deal-item-menu .deal-tag-opt{padding:8px 12px;border-radius:6px;cursor:pointer}.deal-item-menu .deal-tag-opt:hover{background:var(--surface-muted, #f3f4f6)}.deal-original-text{margin-bottom:10px;border:1px solid #e5e7eb;border-radius:6px;background:#fafafa}.deal-original-text>summary{padding:8px 12px;cursor:pointer;font-size:12px;font-weight:500;color:#4b5563;user-select:none;list-style:none}.deal-original-text>summary::-webkit-details-marker{display:none}.deal-original-text>summary:before{content:"▸ ";color:#9ca3af}.deal-original-text[open]>summary:before{content:"▾ "}.deal-original-text>summary:hover{background:#f3f4f6;border-radius:6px 6px 0 0}.deal-original-text-content{margin:0;padding:12px;white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.6;color:#1f2937;background:#fff;border-top:1px solid #e5e7eb;font-family:ui-monospace,SFMono-Regular,Pretendard,Apple SD Gothic Neo,monospace;max-height:400px;overflow-y:auto}.text-muted{color:#9ca3af}.text-sm{font-size:12px}.text-xs{font-size:11px}.text-right{text-align:right}.text-center{text-align:center}.deal-detail-loading,.deal-detail-error{padding:48px 24px;text-align:center;color:var(--text-muted, #6b7280);font-family:-apple-system,BlinkMacSystemFont,Pretendard,Apple SD Gothic Neo,Noto Sans KR,Segoe UI,Roboto,sans-serif}.deal-detail-error h2{font-size:18px;margin:0 0 8px;color:var(--text, #1a1a1a)}.btn-link{color:var(--primary);text-decoration:none;font-weight:500}.btn-link:hover{text-decoration:underline}.deal-detail-page{font-family:-apple-system,BlinkMacSystemFont,Pretendard,Apple SD Gothic Neo,Noto Sans KR,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5;color:var(--text, #1a1a1a);background:var(--bg, #fff);height:100vh;overflow:hidden;display:flex;flex-direction:column}.deal-detail-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.ddb-header,.ddb-modals{display:contents}.deal-detail-header{flex-shrink:0;display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:20px 32px;background:var(--bg, #fff);border-bottom:1px solid var(--border, #e5e7eb)}.deal-detail-title h1{margin:0 0 4px;font-size:22px;font-weight:700;letter-spacing:-.01em}.deal-detail-subtitle{font-size:12px}.deal-detail-actions{display:flex;gap:8px;flex-shrink:0}.deal-detail-grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:24px;padding:24px 32px;align-items:stretch;overflow:hidden}.deal-detail-main{display:flex;flex-direction:column;gap:24px;min-width:0;min-height:0;overflow-y:auto;padding-right:4px}.deal-detail-side{display:flex;flex-direction:column;gap:16px;min-height:0;overflow:hidden}.deal-section{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:8px;padding:20px 24px}.deal-section-stub{background:var(--muted-bg, #f9fafb);border-style:dashed}.deal-section-title{margin:0 0 16px;font-size:16px;font-weight:600;color:var(--text, #1a1a1a)}.deal-section-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.deal-section-header .deal-section-title{margin:0}.deal-items-header-action{margin-left:auto;display:flex;gap:8px;align-items:center}.deal-section-footer{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border, #e5e7eb)}.deal-config-chip{display:inline-block;padding:2px 10px;font-size:12px;color:var(--primary-strong, #016b54);background:var(--primary-soft, #e6f8f3);border-radius:999px}.deal-config-tabs{display:flex;flex-wrap:wrap;gap:6px;flex:1}.deal-config-tab{display:inline-flex;align-items:center;font-size:13px;line-height:1.4;color:var(--text-muted, #6b7280);background:var(--surface-muted, #f3f4f6);border:1px solid var(--border, #e5e7eb);border-radius:999px;overflow:hidden;transition:background .12s,color .12s,border-color .12s}.deal-config-tab-label{padding:4px 12px;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.deal-config-tab-del{border:0;background:transparent;color:inherit;opacity:.5;font-size:14px;line-height:1;padding:4px 9px 4px 2px;cursor:pointer;transition:opacity .12s,color .12s}.deal-config-tab-del:hover{opacity:1;color:#dc2626}.deal-config-tab.is-active .deal-config-tab-del:hover{color:#fecaca}.deal-config-tab:hover{background:#eceef1}.deal-config-tab.is-active{color:#fff;background:#374151;border-color:#374151;font-weight:600}.deal-config-tab.is-confirmed{border-color:var(--primary, #02a07c)}.deal-config-confirmed-badge{display:inline-flex;align-items:center;padding:0 10px;height:100%;border-left:1px solid var(--primary, #02a07c);color:var(--primary-strong, #016b54);background:var(--primary-soft, #e6f8f3);font-size:11px;font-weight:800;white-space:nowrap}.deal-config-bar{display:flex;align-items:center;gap:8px;margin:-8px 0 12px;padding:8px 12px;background:var(--surface-muted, #f9fafb);border:1px solid var(--border, #e5e7eb);border-radius:8px}.deal-config-bar-spacer{flex:1}.deal-config-bar-label{font-size:12px;font-weight:600;color:var(--text-muted, #6b7280)}.deal-items-table.is-confirmed tbody td{background:#f4f5f7;color:#9ca3af}.deal-items-table.is-confirmed tbody td code{background:#e9ebef;color:#6b7280}.deal-items-table.is-confirmed tbody .deal-items-drag{color:#cbd0d6}.deal-items-table.is-confirmed tbody td .deal-sell-price-input{background:var(--surface, #fff);color:var(--text, #111827)}.item-action-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.item-action-left,.item-action-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.deal-edit-context{margin-left:auto;font-size:12px;font-weight:600;color:var(--text-muted, #6b7280);white-space:nowrap}.deal-edit-input{width:100%;min-height:32px;padding:4px 8px;font-size:13px;border:1px solid var(--border, #e5e7eb);border-radius:6px;background:var(--surface, #fff);color:var(--text, #111827)}.deal-edit-input:focus{outline:none;border-color:var(--primary, #02a07c);box-shadow:0 0 0 2px var(--primary-soft, #e6f8f3)}.deal-edit-num{text-align:right}.deal-edit-desc{display:flex;align-items:center;gap:6px}.deal-edit-search-icon{flex:0 0 auto;width:30px;min-height:32px;border:1px solid var(--border, #e5e7eb);border-radius:6px;background:var(--surface, #fff);cursor:pointer;font-size:13px}.deal-edit-search-icon:hover{border-color:var(--primary, #02a07c)}.deal-edit-part-cell{display:flex;align-items:center;gap:6px}.deal-edit-part-cell .cond-chip{flex:0 0 auto}.deal-edit-part-code{font-size:13px;white-space:nowrap}.deal-edit-desc-ro{font-size:13px;color:var(--text-muted, #6b7280);padding:6px 2px;line-height:1.4}.deal-edit-part-input{flex:1 1 auto;min-width:0}.deal-items-edit .drag-handle.disabled{width:14px;height:18px;border:0;background:transparent;color:#cbd0d6;cursor:not-allowed}.deal-items-edit .drag-handle.disabled:before{content:"⋮⋮";letter-spacing:-2px}.deal-toast{position:fixed;left:50%;bottom:32px;transform:translate(-50%) translateY(12px);z-index:1000;max-width:90vw;padding:10px 18px;border-radius:8px;background:#1f2937;color:#fff;font-size:13px;box-shadow:0 6px 24px #00000038;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none}.deal-toast.is-shown{opacity:1;transform:translate(-50%) translateY(0)}.deal-edit-search{width:100%;min-height:32px;padding:4px 8px;font-size:13px;text-align:left;border:1px dashed var(--border, #cbd5e1);border-radius:6px;background:var(--surface, #fff);cursor:pointer}.deal-edit-search:hover{border-color:var(--primary, #02a07c)}.deal-edit-search code{background:transparent;padding:0}.deal-items-edit tfoot td{padding:8px 12px;border-top:1px solid var(--border, #e5e7eb)}.deal-edit-add{color:var(--primary-strong, #016b54)}.deal-rfq-modal-dialog.deal-item-search-dialog,.deal-rfq-modal-dialog.deal-need-create-dialog{width:92vw;max-width:1000px}.deal-item-search-input{width:100%;min-height:38px;padding:8px 12px;font-size:14px;border:1px solid var(--border, #e5e7eb);border-radius:8px;margin-bottom:10px}.deal-item-search-input:focus{outline:none;border-color:var(--primary, #02a07c);box-shadow:0 0 0 2px var(--primary-soft, #e6f8f3)}.deal-item-search-results{max-height:320px;overflow-y:auto;border:1px solid var(--border, #e5e7eb);border-radius:8px}.deal-item-search-empty{padding:24px 12px;text-align:center;color:var(--text-muted, #9ca3af);font-size:13px}.deal-item-search-row{display:grid;grid-template-columns:140px minmax(0,1fr) auto auto;gap:12px;align-items:center;width:100%;padding:8px 12px;border:0;border-bottom:1px solid #f3f4f6;background:transparent;text-align:left;cursor:pointer}.deal-item-search-stock,.deal-item-search-cost{font-size:12px;color:var(--text-muted, #6b7280);white-space:nowrap;text-align:right}.deal-item-search-row:last-child{border-bottom:none}.deal-item-search-row:hover{background:var(--surface-muted, #f9fafb)}.deal-item-search-row.is-selected{background:var(--primary-soft, #e6f8f3);box-shadow:inset 3px 0 0 var(--primary, #02a07c)}.deal-item-search-source{font-size:11px;font-weight:700;color:var(--primary-strong, #016b54)}.deal-item-search-part{font-size:13px;font-weight:600}.deal-item-search-desc{font-size:11px;color:var(--text-muted, #6b7280);white-space:nowrap}.deal-sell-price-input{width:110px;padding:4px 8px;font-size:13px;text-align:right;border:1px solid var(--border, #e5e7eb);border-radius:6px;background:var(--surface, #fff);transition:border-color .12s,box-shadow .12s}.deal-sell-price-input:focus{outline:none;border-color:var(--primary, #02a07c);box-shadow:0 0 0 2px var(--primary-soft, #e6f8f3)}.deal-sell-price-input.is-saved{border-color:var(--primary, #02a07c);background:var(--primary-soft, #e6f8f3)}.deal-context-stack{display:flex;flex-direction:column}.deal-context-panel{padding:16px 0}.deal-context-panel:first-child{padding-top:4px}.deal-context-panel:not(:first-child){border-top:1px solid var(--border, #e5e7eb)}.deal-context-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.deal-context-title{margin:0;font-size:13px;font-weight:700;color:#374151}.deal-context-fold{border:0;background:none;padding:0;font-size:12px;font-weight:600;color:var(--primary-strong, #016b54);cursor:pointer}.deal-context-fold:hover{text-decoration:underline}.deal-context-body.collapsed{display:none}.deal-context-text{margin:0;font-family:inherit;font-size:14px;line-height:1.7;color:#1f2937;white-space:pre-wrap;word-break:break-word}.deal-original-box{padding:12px 14px;background:var(--surface-muted, #f9fafb);border-left:3px solid var(--primary, #02a07c);border-radius:6px}.empty-context{margin:0;font-size:13px;color:var(--text-muted, #9ca3af)}.deal-history-list{display:flex;flex-direction:column;gap:8px}.deal-history-row{display:flex;gap:14px;font-size:13px;line-height:1.5}.deal-history-time{flex:0 0 130px;color:var(--text-muted, #9ca3af);white-space:nowrap}.deal-history-text{color:#374151}.btn-icon{width:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center}.deal-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 24px;margin:0}.deal-info-item dt{font-size:12px;color:var(--text-muted, #6b7280);margin-bottom:4px}.deal-info-item dd{margin:0;font-size:14px;font-weight:500}.deal-info-item small{color:var(--text-muted, #6b7280);font-weight:400}.deal-table-wrap{overflow-x:auto}.deal-items-table{width:100%;border-collapse:collapse;font-size:13px}.deal-items-table thead th{text-align:left;font-weight:600;font-size:12px;color:var(--text-muted, #6b7280);padding:8px 12px;border-bottom:1px solid var(--border, #e5e7eb);background:var(--muted-bg, #f9fafb);white-space:nowrap}.deal-items-table tbody td{padding:10px 12px;border-bottom:1px solid var(--border, #e5e7eb)}.deal-items-table tbody tr:last-child td{border-bottom:none}.deal-items-table code{font-family:ui-monospace,SFMono-Regular,monospace;font-size:13px;font-weight:600;background:#eef2f6;padding:2px 7px;border-radius:4px;color:#111827;letter-spacing:.01em}.need-rfqs-page{max-width:1100px;margin:0 auto;padding:24px;font-family:var(--font-body, system-ui);color:var(--text, #111827)}.need-rfqs-header{margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid var(--border, #e5e7eb)}.need-rfqs-nav{display:flex;gap:16px;align-items:center;margin-bottom:16px}.need-rfqs-back{display:inline-block;color:var(--primary, #01a982);text-decoration:none;font-size:13px;font-weight:500}.need-rfqs-back:hover{text-decoration:underline}.need-rfqs-title{font-size:24px;font-weight:600;margin:0 0 4px;color:var(--text, #111827)}.need-rfqs-subtitle{font-size:14px;color:var(--text-muted, #6b7280);margin:0 0 16px}.need-rfqs-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px 24px;margin:16px 0 0;padding:0}.need-rfqs-meta>div{margin:0}.need-rfqs-meta dt{font-size:11px;color:var(--text-muted, #6b7280);text-transform:uppercase;letter-spacing:.3px;margin-bottom:2px}.need-rfqs-meta dd{font-size:13px;color:var(--text, #111827);margin:0;font-weight:500}.need-rfqs-batch{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:8px;margin-bottom:16px;overflow:hidden}.need-rfqs-batch-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--muted-bg, #f9fafb);border-bottom:1px solid var(--border, #e5e7eb)}.need-rfqs-batch-header h2{font-size:14px;font-weight:600;margin:0;font-family:ui-monospace,SFMono-Regular,monospace}.need-rfqs-batch-meta{font-size:12px;color:var(--text-muted, #6b7280)}.need-rfqs-table-wrap{overflow-x:auto}.need-rfqs-table{width:100%;border-collapse:collapse;font-size:13px}.need-rfqs-table thead th{text-align:left;font-weight:600;font-size:12px;color:var(--text-muted, #6b7280);padding:8px 12px;border-bottom:1px solid var(--border, #e5e7eb);white-space:nowrap}.need-rfqs-table tbody td{padding:10px 12px;border-bottom:1px solid var(--border, #e5e7eb)}.need-rfqs-table tbody tr:last-child td{border-bottom:none}.need-rfqs-empty{background:var(--surface, #fff);border:1px dashed var(--border, #e5e7eb);border-radius:8px;padding:32px;text-align:center}.need-rfqs-empty p{margin:4px 0}.deal-quote-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:8px 0 20px}.deal-quote-card{background:var(--muted-bg, #f9fafb);border:1px solid var(--border, #e5e7eb);border-radius:8px;padding:14px 16px}.deal-quote-card dt{font-size:11px;color:var(--text-muted, #6b7280);text-transform:uppercase;letter-spacing:.3px;margin-bottom:6px}.deal-quote-card dd{font-size:18px;font-weight:600;margin:0;color:var(--text, #111827)}.deal-quote-card dd small{font-size:12px;font-weight:400;margin-left:4px}.deal-quote-table{width:100%;border-collapse:collapse;font-size:13px}.deal-quote-table thead th{text-align:left;font-weight:600;font-size:12px;color:var(--text-muted, #6b7280);padding:8px 12px;border-bottom:1px solid var(--border, #e5e7eb);background:var(--muted-bg, #f9fafb);white-space:nowrap}.deal-quote-table tbody td{padding:10px 12px;border-bottom:1px solid var(--border, #e5e7eb)}.deal-quote-table tbody tr:last-child td{border-bottom:none}.deal-quote-table .deal-quote-row-accepted{background:#01a9820f;font-weight:500}.deal-quote-table .deal-quote-row-accepted td:first-child{border-left:3px solid var(--primary, #01a982)}.quote-status{display:inline-block;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:500}.quote-status-draft{background:var(--muted-bg, #f3f4f6);color:var(--text-muted, #6b7280)}.quote-status-sent{background:#3b82f61f;color:#1d4ed8}.quote-status-accepted{background:#01a9821f;color:#018260}.quote-status-rejected{background:#ef44441f;color:#b91c1c}.quote-status-expired{background:#9ca3af33;color:var(--text-muted, #6b7280)}@media(max-width:768px){.deal-quote-cards{grid-template-columns:1fr}}.deal-rfq-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center}.deal-rfq-modal.hidden{display:none}.deal-rfq-modal-overlay{position:absolute;inset:0;background:#0f172a73;cursor:pointer}.deal-rfq-modal-dialog{position:relative;background:var(--surface, #fff);border-radius:12px;box-shadow:0 20px 50px #0003;width:100%;max-width:460px;margin:16px;overflow:hidden;z-index:1}.deal-rfq-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border, #e5e7eb)}.deal-rfq-modal-header h2{font-size:16px;font-weight:600;margin:0;color:var(--text, #111827)}.deal-rfq-modal-close{background:none;border:none;font-size:16px;color:var(--text-muted, #6b7280);cursor:pointer;padding:4px 8px;border-radius:4px;line-height:1}.deal-rfq-modal-close:hover{background:var(--muted-bg, #f9fafb)}.deal-rfq-modal-body{padding:20px}.deal-rfq-modal-body p{margin:0 0 8px;font-size:14px;line-height:1.5;color:var(--text, #111827)}.deal-rfq-modal-body p.text-sm{font-size:12px;color:var(--text-muted, #6b7280);margin-top:4px}.deal-rfq-modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--border, #e5e7eb);background:var(--muted-bg, #f9fafb)}.cond-chip{display:inline-block;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:500;line-height:1.6;white-space:nowrap}.cond-신품{background:#01a9821f;color:#018260}.cond-벌크{background:#3b82f61f;color:#1d4ed8}.cond-중고{background:#ffa50026;color:#b66d00}.cond-미확인{background:var(--muted-bg, #f3f4f6);color:var(--text-muted, #6b7280)}.cond-미등록{background:#ef44441f;color:#b91c1c;border:1px dashed rgba(239,68,68,.4)}.cond-detail{font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;margin-left:4px;padding:1px 5px;background:var(--muted-bg, #f9fafb);border-radius:3px;color:var(--text, #111827)}.deal-ref-cell{position:relative}.deal-ref-view-btn{background:none;border:1px solid var(--border, #e5e7eb);border-radius:6px;padding:2px 8px;font-size:12px;cursor:pointer;color:var(--text-muted, #6b7280)}.deal-ref-view-btn:hover{border-color:var(--primary, #02a07c);color:var(--primary-strong, #016b54)}.deal-ref-overlay{position:fixed;inset:0;z-index:60}.deal-ref-popover{position:fixed;z-index:61;min-width:240px;max-width:340px;background:#fff;border:1px solid var(--border, #e5e7eb);border-radius:10px;box-shadow:0 10px 30px #00000026;padding:10px 12px}.deal-ref-popover-title{font-weight:600;font-size:12px;color:var(--text-muted, #6b7280);margin-bottom:6px}.deal-ref-popover-list{max-height:320px;overflow-y:auto;overscroll-behavior:contain}.deal-ref-row{display:flex;gap:8px;align-items:center;font-size:13px;padding:3px 0;white-space:nowrap}.deal-ref-date{color:var(--text-muted, #6b7280)}.deal-ref-supplier{font-weight:500}.deal-ref-cond{font-size:11px;color:var(--text-muted, #6b7280)}.deal-ref-alt{font-size:10px;font-weight:600;color:#b45309;background:#fef3c7;border-radius:4px;padding:1px 5px}.deal-ref-price{margin-left:auto;font-weight:600}.deal-ref-empty{font-size:13px;padding:4px 0}.deal-sourcing-table{width:100%;border-collapse:collapse;font-size:13px}.deal-sourcing-table thead th{text-align:left;font-weight:600;font-size:12px;color:var(--text-muted, #6b7280);padding:8px 12px;border-bottom:1px solid var(--border, #e5e7eb);background:var(--muted-bg, #f9fafb);white-space:nowrap}.deal-sourcing-table tbody td{padding:10px 12px;border-bottom:1px solid var(--border, #e5e7eb)}.deal-sourcing-table tbody tr:last-child td{border-bottom:none}.deal-sourcing-table code{font-family:ui-monospace,SFMono-Regular,monospace;font-size:13px;font-weight:600;background:#eef2f6;padding:2px 7px;border-radius:4px;color:#111827;letter-spacing:.01em;white-space:nowrap}.deal-sourcing-table tbody td:nth-child(2){white-space:nowrap}.deal-sourcing-table td.text-muted code{color:#111827}.deal-sourcing-link{color:var(--primary, #01a982);text-decoration:none;font-weight:500;font-size:12px}.deal-sourcing-link:hover{text-decoration:underline}.deal-items-table th.deal-items-drag,.deal-items-table td.deal-items-drag{width:28px;padding-left:12px;padding-right:4px;color:var(--text-muted, #9ca3af);text-align:center;cursor:grab;user-select:none;font-size:12px;letter-spacing:-2px}.deal-items-table th.deal-items-check,.deal-items-table td.deal-items-check{width:32px;padding-left:4px;padding-right:4px;text-align:center}.deal-items-table td.deal-items-check input[type=checkbox],.deal-items-table th.deal-items-check input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary, #01a982);cursor:pointer;margin:0;vertical-align:middle}.deal-side-section{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:8px;padding:12px 16px}.deal-side-section h3{margin:0 0 8px;font-size:13px;font-weight:600}.deal-side-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.deal-side-section-header h3{margin:0}.deal-status-steps-vertical{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}.deal-status-step{font-size:12px;padding:1px 0;color:var(--text-muted, #6b7280);line-height:1.4}.deal-status-step.past{color:var(--text, #1a1a1a)}.deal-status-step.current{color:var(--primary-strong, #016b54);font-weight:700}.deal-status-step.future{color:var(--text-muted, #9ca3af)}.deal-status-hist-label{margin-top:10px;font-size:12px;font-weight:700;color:var(--text-muted, #6b7280)}.deal-status-history-list{list-style:none;margin:6px 0 0;padding:0;max-height:320px;overflow-y:auto}.deal-status-hist{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 10px;border-radius:8px;font-size:13px;color:var(--text, #111827)}.deal-status-hist-date{font-size:12px;color:var(--text-muted, #6b7280);white-space:nowrap}.deal-status-hist.is-current{background:var(--primary-soft, #e6f8f3);color:var(--primary-strong, #016b54);font-weight:700}.deal-status-hist.is-current .deal-status-hist-date{color:var(--primary-strong, #016b54)}.deal-status-hist.is-future{color:#9ca3af}.deal-status-cancel-chip{display:inline-block;padding:2px 10px;font-size:12px;color:#b91c1c;background:#fee2e2;border-radius:999px;margin-bottom:8px}.deal-chat-section{display:flex;flex-direction:column;flex:1;min-height:0}.deal-chat-list{flex:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:10px;padding:4px 0}.deal-chat-section h3,.deal-chat-input{flex-shrink:0}.deal-chat-msg{padding:8px 12px;border-radius:8px;font-size:13px}.deal-chat-msg-user{background:var(--primary-soft, #e6f8f3);align-self:flex-end;max-width:90%}.deal-chat-msg-assistant{background:var(--muted-bg, #f3f4f6);align-self:flex-start;max-width:90%}.deal-chat-msg-header{display:flex;justify-content:space-between;gap:8px;font-size:11px;margin-bottom:4px;color:var(--text-muted, #6b7280)}.deal-chat-msg-content{white-space:pre-wrap;word-break:break-word}.deal-chat-input{display:flex;gap:6px;align-items:flex-end;margin-top:8px;padding-top:8px;border-top:1px solid var(--border, #e5e7eb)}.deal-chat-input-box{flex:1;min-width:0;border:1px solid var(--border, #e5e7eb);border-radius:6px;padding:6px 10px;font-size:13px;font-family:inherit;line-height:1.4;background:var(--bg, #fff);resize:none;overflow-y:auto;max-height:120px;box-sizing:border-box}@media(max-width:1024px){.deal-detail-page{height:auto;overflow:visible}.deal-detail-body{overflow:visible}.deal-detail-grid{grid-template-columns:1fr;overflow:visible}.deal-detail-main{overflow-y:visible}.deal-detail-side{overflow-y:visible;max-height:none}}.deal-quote-modal{position:fixed;inset:0;z-index:1100;display:flex;align-items:center;justify-content:center}.deal-quote-modal.hidden{display:none}.deal-quote-modal-overlay{position:absolute;inset:0;background:#00000073;cursor:pointer}.deal-quote-modal-dialog{position:relative;z-index:1;background:var(--surface, #fff);border-radius:12px;box-shadow:0 20px 60px #00000040;width:100%;max-width:1700px;max-height:90vh;margin:16px;overflow:hidden;display:flex;flex-direction:column}.deal-quote-modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--border, #e5e7eb);background:var(--surface, #fff)}.deal-quote-modal-header h2{font-size:18px;font-weight:600;margin:0 0 4px;color:var(--text, #111827)}.deal-quote-modal-body{padding:18px 24px;overflow-y:auto;flex:1 1 auto;background:#fafaf7}.deal-quote-modal-footer{padding:14px 24px;border-top:1px solid var(--border, #e5e7eb);background:var(--surface, #fff)}.deal-quote-modal-footer p{margin:0 0 10px}.deal-quote-modal-actions{display:flex;justify-content:flex-end;gap:10px}.deal-quote-modal-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.deal-quote-modal-meta-box{background:#fff;border:1px solid var(--border, #e5e7eb);border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}.deal-quote-modal-meta-label{font-size:11px;color:var(--text-muted, #6b7280);text-transform:uppercase;letter-spacing:.3px}.deal-quote-modal-meta-value{font-size:15px;font-weight:600;color:var(--text, #111827)}.deal-quote-modal-meta-input{border:none;outline:none;padding:0;font-size:15px;font-weight:600;color:var(--text, #111827);background:transparent;width:100%}.deal-quote-modal-meta-input:focus{outline:2px solid rgba(22,163,74,.2);border-radius:4px;padding:2px 4px}.deal-quote-modal-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--border, #e5e7eb);border-radius:8px;overflow:hidden;margin-bottom:18px}.deal-quote-modal-table thead th{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;color:var(--text-muted, #6b7280);padding:10px 8px;text-align:left;background:#faf7f0;border-bottom:1px solid var(--border, #e5e7eb);white-space:nowrap}.deal-quote-modal-table tbody td{padding:8px;border-bottom:1px solid var(--border, #f3f4f6);font-size:13px;vertical-align:middle}.deal-quote-modal-table tbody tr:last-child td{border-bottom:none}.deal-quote-modal-table .text-right{text-align:right}.deal-quote-modal-table-total-row td{background:#faf7f0;font-size:13px;padding:10px 8px;border-top:2px solid var(--border, #e5e7eb);border-bottom:none!important}.deal-quote-modal-table code{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px;background:var(--muted-bg, #f9fafb);padding:1px 6px;border-radius:4px}.deal-quote-modal-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.deal-quote-modal-table-v2{table-layout:auto;width:100%}.deal-quote-modal-table-v2 th,.deal-quote-modal-table-v2 td{vertical-align:middle}.deal-quote-item-cell{max-width:340px}.deal-quote-item-part{font-size:13px;color:var(--text, #111827);line-height:1.45}.deal-quote-item-cat{font-size:11px;color:var(--text-muted, #6b7280);margin-top:2px}.deal-quote-item-refs{margin-top:6px}.deal-quote-refs-summary{font-size:11px;font-weight:600;color:var(--text-muted, #6b7280);cursor:pointer;list-style:none;user-select:none}.deal-quote-refs-summary:before{content:"+ "}.deal-quote-item-refs[open]>.deal-quote-refs-summary:before{content:"– "}.deal-quote-refs-summary::-webkit-details-marker{display:none}.deal-quote-ref-sec{margin-top:4px}.deal-quote-ref-sec-title{font-size:10px;font-weight:600;color:var(--text-muted, #9ca3af);margin-bottom:1px}.deal-quote-ref-list{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;column-gap:8px;row-gap:1px}.deal-quote-ref-row{display:contents}.deal-quote-ref-row>span{font-size:11px;line-height:1.55}.deal-quote-ref-row .qref-date{color:var(--text-muted, #9ca3af);white-space:nowrap}.deal-quote-ref-row .qref-supplier{color:var(--text-secondary, #4b5563);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deal-quote-ref-row .qref-cond{color:var(--text-muted, #6b7280);white-space:nowrap}.deal-quote-ref-row .qref-price{color:var(--text-secondary, #4b5563);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.deal-quote-source-select{width:100%;min-width:120px;max-width:150px}.deal-quote-qty{width:72px;text-align:right}.deal-quote-price,.deal-quote-sell{width:120px;text-align:right}.deal-quote-costsum,.deal-quote-sellsum{white-space:nowrap}.deal-quote-marginval{width:72px;white-space:nowrap}.deal-quote-modal-table-v2 .input{padding:6px 9px;font-size:13px}.deal-quote-newpart,.deal-quote-newdesc{width:100%;margin-bottom:4px}.deal-quote-del{padding:4px 10px;white-space:nowrap}.deal-quote-modal-table-v2 td.text-right{white-space:nowrap}.deal-quote-additem{margin-top:10px;border:1px dashed var(--border, #d1d5db);color:var(--text-muted, #6b7280)}.deal-quote-additem:hover{border-color:var(--primary, #02a07c);color:var(--primary-strong, #016b54);background:var(--primary-soft, #e6f8f3)}.deal-quote-modal-summary-box{background:#fff;border:1px solid var(--border, #e5e7eb);border-radius:8px;padding:14px 16px}.deal-quote-modal-summary-label{font-size:11px;color:var(--text-muted, #6b7280);text-transform:uppercase;letter-spacing:.3px;margin-bottom:6px}.deal-quote-modal-summary-value{font-size:20px;font-weight:700;color:var(--text, #111827)}.deal-quote-modal-empty{text-align:center;padding:24px;background:#fff;border:1px dashed var(--border, #d1d5db);border-radius:8px;margin-bottom:18px}.text-success{color:#16a34a}.text-danger{color:#dc2626}.form-input-sm{width:100%;padding:6px 8px;border:1px solid var(--border, #d1d5db);border-radius:4px;font-size:12px;background:#fff}.form-input-sm:focus{outline:none;border-color:var(--primary, #16a34a)}.deal-chat-attach-btn{background:transparent;border:1px solid var(--border, #e5e7eb);border-radius:6px;padding:4px 8px;font-size:14px;cursor:pointer;color:var(--text, #1a1a1a);flex-shrink:0}.deal-chat-attach-btn:hover:not(:disabled){background:var(--muted-bg, #f9fafb)}.deal-chat-attach-btn:disabled{opacity:.5;cursor:not-allowed}.deal-chat-attach-preview{display:flex;flex-wrap:wrap;gap:6px;padding:6px 8px 4px}.deal-chat-attach-item{position:relative;width:60px;height:60px;border:1px solid var(--border, #e5e7eb);border-radius:6px;overflow:hidden;background:var(--muted-bg, #f9fafb)}.deal-chat-attach-item img{width:100%;height:100%;object-fit:cover;display:block}.deal-chat-attach-item .deal-chat-attach-file{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:2px;text-align:center}.deal-chat-attach-file-icon{font-size:18px;line-height:1}.deal-chat-attach-file-name{font-size:9px;line-height:1.1;color:var(--text-secondary, #6b7280);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.deal-chat-attach-remove{position:absolute;top:2px;right:2px;width:18px;height:18px;border-radius:50%;background:#0009;color:#fff;border:none;font-size:12px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.deal-chat-attach-remove:hover{background:#000000d9}.deal-chat-msg-pending-user{opacity:.7}.deal-chat-msg-loading{display:flex;align-items:center;gap:8px}.deal-chat-spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--border, #e5e7eb);border-top-color:var(--primary, #16a34a);border-radius:50%;animation:deal-chat-spin .8s linear infinite;flex-shrink:0}@keyframes deal-chat-spin{to{transform:rotate(360deg)}}.deal-chat-msg-attachments{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.deal-chat-msg-attachment-image-link{display:block;width:140px;border-radius:6px;overflow:hidden;border:1px solid var(--border, #e5e7eb);background:var(--muted-bg, #f9fafb);transition:transform .1s,box-shadow .1s}.deal-chat-msg-attachment-image-link:hover{transform:scale(1.02);box-shadow:0 2px 8px #0000001a}.deal-chat-msg-attachment-image{width:100%;max-height:140px;object-fit:cover;display:block}.deal-chat-msg-attachment-link{display:inline-block;padding:4px 10px;background:var(--muted-bg, #f9fafb);border:1px solid var(--border, #e5e7eb);border-radius:6px;font-size:12px;color:var(--text, #1a1a1a);text-decoration:none}.deal-chat-msg-attachment-link:hover{background:var(--surface, #fff)}.deal-list-table .deal-group-row td{padding:10px 12px 6px;background:var(--surface-muted, #f9fafb);font-size:12px;font-weight:700;color:var(--text-muted, #6b7280);border-bottom:1px solid var(--border, #e5e7eb)}.deal-no-cell{white-space:nowrap}.deal-no-cell code{font-size:12px;font-weight:600;color:#111827}.deal-copy-btn{margin-left:6px;border:0;background:transparent;color:var(--text-muted, #9ca3af);cursor:pointer;font-size:13px;line-height:1}.deal-copy-btn:hover{color:var(--primary, #02a07c)}.deal-row-name{font-weight:600;color:#1f2937}.deal-watch-col{width:44px}.deal-watch-star{border:0;background:transparent;cursor:pointer;font-size:18px;line-height:1;color:#cbd5e1;transition:color .12s,transform .08s}.deal-watch-star:hover{transform:scale(1.15)}.deal-watch-star.is-on{color:#f5b301}.page-deal-list .filter-bar{flex-wrap:nowrap}.page-deal-list .filter-search{flex:1 1 auto;min-width:280px}.deal-watch-toggle{flex:0 0 auto;width:40px;height:38px;border:1px solid var(--c-border, #d1d5db);border-radius:8px;background:#fff;color:#cbd5e1;font-size:18px;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.deal-watch-toggle:hover{border-color:#9ca3af}.deal-watch-toggle.is-on{color:#f5b301;border-color:#f5b301;background:#fffbeb}.deal-filter-selects{display:flex;gap:8px;flex:0 0 auto}.deal-filter-select{min-width:130px;height:38px;padding:0 30px 0 12px;border:1px solid var(--c-border, #d1d5db);border-radius:8px;background:#fff;color:#374151;font-size:13px;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.deal-filter-select:focus{outline:none;border-color:#2563eb}.deal-list-table .deal-group-row td{padding:8px 14px;background:#eef1f5;border-bottom:1px solid #e0e4ea}.deal-group-date{font-size:13px;font-weight:700;color:#374151}.deal-group-count{margin-left:6px;font-size:12px;color:#6b7280}.deal-status-control{position:relative}.deal-status-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;min-width:150px;padding:6px 12px;border:1px solid var(--border, #e5e7eb);border-radius:8px;background:var(--surface, #fff);cursor:pointer}.deal-status-trigger:hover{border-color:var(--primary, #02a07c)}.deal-status-current-chip{display:inline-block;padding:2px 10px;border-radius:10px;font-size:13px;font-weight:600}.deal-status-caret{font-size:10px;color:var(--text-muted, #9ca3af)}.deal-status-popover-overlay{position:fixed;inset:0;z-index:40}.deal-status-popover{position:absolute;top:calc(100% + 6px);right:0;z-index:41;width:260px;padding:14px;background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:10px;box-shadow:0 8px 28px #00000029}.deal-status-popover-head{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.deal-status-popover-head h3{margin:0;font-size:12px;font-weight:700;color:#374151}.deal-detail-side-chat{gap:0}.deal-detail-side-chat>*{flex:1 1 auto;min-height:0}.deal-sourcing-table-v2 .deal-sourcing-subhead td{padding:8px 12px 4px;font-size:12px;font-weight:700;color:var(--text-muted, #6b7280);background:var(--surface-muted, #f9fafb)}.deal-need-tag{display:inline-block;padding:2px 8px;font-size:11px;font-weight:600;color:var(--primary-strong, #016b54);background:var(--primary-soft, #e6f8f3);border-radius:999px;white-space:nowrap}.deal-rfq-bubbles{display:flex;flex-wrap:wrap;gap:6px;padding-bottom:2px}.deal-rfq-bubble{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:3px 10px;border:1px solid var(--border, #e5e7eb);border-radius:999px;background:var(--surface, #fff);cursor:pointer;white-space:nowrap;font-size:12px}.deal-rfq-bubble:hover{border-color:var(--primary, #02a07c)}.deal-rfq-bubble-name{font-weight:600;color:#1f2937}.deal-rfq-bubble-price{color:var(--text-muted, #6b7280)}.deal-rfq-view-list{margin:0;display:flex;flex-direction:column;gap:10px}.deal-rfq-view-row{display:grid;grid-template-columns:90px 1fr;gap:10px;align-items:baseline}.deal-rfq-view-row dt{font-size:12px;color:var(--text-muted, #6b7280)}.deal-rfq-view-row dd{margin:0;font-size:13px;color:#1f2937}.deal-tag-cell{position:relative}.deal-tag-trigger{border:0;background:transparent;padding:2px 4px;margin:-2px -4px;border-radius:6px;cursor:pointer;text-align:left;display:inline-flex;flex-wrap:wrap;gap:4px;align-items:center}.deal-tag-trigger:hover{background:var(--surface-muted, #f3f4f6)}.deal-tag-pop-overlay{position:fixed;inset:0;z-index:50}.deal-tag-pop{position:absolute;top:calc(100% + 4px);left:0;z-index:51;min-width:150px;padding:6px;background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:8px;box-shadow:0 6px 24px #00000029;display:flex;flex-direction:column;gap:2px}.deal-item-menu,.deal-quote-menu,.deal-need-menu,.deal-tag-editor-pop{position:fixed;top:-9999px;left:-9999px}.deal-tag-opt{display:flex;align-items:center;gap:8px;padding:5px 8px;font-size:13px;border-radius:6px;cursor:pointer;white-space:nowrap}.deal-tag-opt:hover{background:var(--surface-muted, #f9fafb)}.deal-need-create-dialog{max-width:560px;width:92%}.deal-need-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.deal-need-field{display:flex;flex-direction:column;gap:4px}.deal-need-field-wide{grid-column:1 / -1}.deal-need-field>span{font-size:12px;color:var(--text-muted, #6b7280)}.deal-need-field input,.deal-need-field select{min-height:36px;padding:6px 10px;font-size:13px;border:1px solid var(--border, #e5e7eb);border-radius:8px;background:var(--surface, #fff)}.deal-need-field input:not([type=checkbox]):focus,.deal-need-field select:focus{outline:none;border-color:var(--primary, #02a07c);box-shadow:0 0 0 2px var(--primary-soft, #e6f8f3)}.deal-need-tags{display:flex;flex-wrap:wrap;gap:4px 10px}.deal-need-link-radios{display:flex;align-items:center;gap:18px}.deal-need-link-radios label{display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}.deal-items-table th.deal-item-check,.deal-items-table td.deal-item-check{width:34px;text-align:center;padding-left:12px}.deal-need-picked{display:flex;align-items:center;gap:8px;min-height:38px;padding:6px 10px;border:1px solid var(--border, #e5e7eb);border-radius:8px;background:var(--surface-muted, #f9fafb)}.deal-need-picked code{font-weight:600}.deal-need-picked-desc{flex:1;font-size:13px;color:#374151;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deal-edit-conflict-banner{margin:0 0 10px;padding:10px 14px;border:1px solid #f59e0b;border-radius:8px;background:#fffbeb;color:#92400e;font-size:13px;line-height:1.5}.deal-items-table tr.deal-edit-row-external>td{background:#fefce8}.deal-edit-external-badge{background:#fef3c7;color:#92400e;border-color:#f59e0b}.sourcing-page{padding:24px 28px}.sourcing-topbar{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.sourcing-topbar-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.sourcing-topbar h1{font-size:22px;font-weight:700;margin:0}.sourcing-search-input{width:340px;max-width:100%}.sourcing-table-header-row,.sourcing-row{display:grid;grid-template-columns:26px 130px minmax(220px,1.6fr) 130px 56px 150px 120px 120px minmax(140px,1fr) 40px;gap:10px;align-items:center;padding:10px 12px}.sourcing-table-header-row{font-size:12px;font-weight:600;color:var(--text-muted, #6b7280);border-bottom:1px solid var(--border, #e5e7eb);background:var(--surface-muted, #f9fafb);position:sticky;top:0;z-index:1}.sourcing-row{font-size:13px;border-bottom:1px solid var(--border, #f0f1f3)}.sourcing-row:hover{background:#02a07c14}.sourcing-cell-desc{color:#374151}.sourcing-desc-copy{border:0;background:transparent;cursor:pointer;margin-left:6px;padding:0 2px;font-size:12px;line-height:1;vertical-align:middle;color:#9ca3af;opacity:0;transition:opacity .12s,color .12s}.sourcing-row:hover .sourcing-desc-copy{opacity:1}.sourcing-desc-copy:hover{color:var(--primary, #02a07c)}.sourcing-desc-copy.is-copied{color:var(--primary, #02a07c);opacity:1}.sourcing-cell-bubbles{display:flex;flex-wrap:wrap;gap:4px}.sourcing-cell-action{position:relative;text-align:center}.sourcing-date-section{margin-top:14px}.sourcing-date-head{padding:7px 12px;background:var(--surface-muted, #eef0f3);border-top:1px solid var(--border, #e5e7eb);border-bottom:1px solid var(--border, #e5e7eb);border-left:3px solid var(--primary, #02a07c);border-radius:3px}.sourcing-date-title{font-size:13px;font-weight:700;color:#374151;letter-spacing:.2px}.sourcing-tag{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:600;background:var(--primary-soft, #e6f8f3);color:var(--primary-strong, #016b54)}.sourcing-result-pill{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11px;background:#eef2ff;color:#3730a3;white-space:nowrap}.sourcing-deal-link{color:var(--primary-strong, #016b54);text-decoration:none}.sourcing-deal-link:hover{text-decoration:underline}.sourcing-list-note{padding:14px;text-align:center;font-size:12px;color:var(--text-muted, #6b7280)}.sourcing-drag-handle{cursor:grab;color:#c0c4cc;font-size:14px;text-align:center;line-height:1;user-select:none}.sourcing-drag-handle:hover{color:#6b7280}.sourcing-drag-handle:active{cursor:grabbing}.sourcing-cluster{position:relative}.sourcing-cluster.grouped{background:#02a07c0d;box-shadow:inset 3px 0 0 var(--primary, #02a07c);border-radius:0 6px 6px 0;margin:6px 0}.sourcing-cluster-body{position:relative}.sourcing-group-config-anchor{position:absolute;inset:0;display:grid;grid-template-columns:26px 130px minmax(220px,1.6fr) 130px 56px 150px 120px 120px minmax(140px,1fr) 40px;gap:10px;padding:0 12px;align-items:center;pointer-events:none;z-index:2}.sourcing-group-config{grid-column:9;justify-self:start;transform:translate(calc(-100% - 6px));pointer-events:auto}.sourcing-cluster.drop-above:before,.sourcing-cluster.drop-below:after{content:"";position:absolute;left:0;right:0;height:3px;background:var(--primary, #02a07c);border-radius:2px;z-index:5}.sourcing-cluster.drop-above:before{top:-2px}.sourcing-cluster.drop-below:after{bottom:-2px}.sourcing-cluster.drop-merge{background:#02a07c1f;outline:1px dashed var(--primary, #02a07c);outline-offset:-1px}.sourcing-cluster-head{display:flex;align-items:center;justify-content:space-between;padding:5px 12px 1px 16px}.sourcing-cluster-grip{font-size:11px;font-weight:700;color:var(--primary-strong, #016b54);cursor:grab;user-select:none;padding:2px 4px;border-radius:4px}.sourcing-cluster-grip:hover{background:#02a07c1f}.sourcing-cluster-grip:active{cursor:grabbing}.sourcing-cluster-dissolve{border:0;background:transparent;cursor:pointer;font-size:11px;color:#6b7280;padding:2px 8px;border-radius:4px}.sourcing-cluster-dissolve:hover{color:#dc2626;background:#fef2f2}.sourcing-merge-overlay{position:fixed;inset:0;z-index:60}.sourcing-merge-popover{position:fixed;z-index:61;background:#fff;border:1px solid var(--border, #e5e7eb);border-radius:10px;box-shadow:0 8px 28px #0000002e;padding:14px 16px;min-width:200px}.sourcing-merge-text{margin:0 0 10px;font-size:13px;font-weight:600;color:#111827}.sourcing-merge-actions{display:flex;justify-content:flex-end;gap:8px}.sourcing-row-menu{position:absolute;left:auto;right:0;top:28px;z-index:52;min-width:96px}.sourcing-create-body{display:flex;flex-direction:column;gap:12px;padding:18px 22px}.sourcing-create-body label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#4b5563}.sourcing-create-row{display:grid;grid-template-columns:1.4fr .7fr 1fr;gap:10px}.sourcing-create-tags{display:flex;flex-direction:column;gap:8px}.sourcing-create-tag-label{font-size:12px;color:#6b7280;margin-right:6px}.sourcing-tag-pick{padding:3px 10px;border:1px solid var(--border, #d1d5db);border-radius:999px;background:#fff;font-size:12px;cursor:pointer}.sourcing-tag-pick.is-on{background:var(--primary-soft, #e6f8f3);border-color:var(--primary, #02a07c);color:var(--primary-strong, #016b54);font-weight:600}.sourcing-tagcell{display:inline-flex;flex-wrap:wrap;gap:4px;align-items:center;border:0;background:transparent;cursor:pointer;padding:4px 6px;border-radius:6px;font:inherit;text-align:left;max-width:100%}.sourcing-tagcell:hover{background:var(--surface-muted, #f3f4f6)}.sourcing-tagcell-empty{font-size:12px;color:var(--text-muted, #9ca3af)}.sourcing-tag-overlay{position:fixed;inset:0;z-index:55}.sourcing-tag-pop{position:fixed;z-index:56;min-width:220px;background:#fff;border:1px solid var(--border, #e5e7eb);border-radius:12px;box-shadow:0 10px 32px #00000029;padding:10px;display:flex;flex-direction:column;gap:6px}.sourcing-tag-pop-title{font-size:12px;font-weight:700;color:#6b7280;padding:2px 4px 4px}.sourcing-tag-opt{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border, #e5e7eb);border-radius:8px;background:#fff;font:inherit;color:#374151;cursor:pointer;text-align:left}.sourcing-tag-opt:hover{background:var(--surface-muted, #f9fafb)}.sourcing-tag-opt.is-on{border-color:var(--primary, #02a07c);background:var(--primary-soft, #e6f8f3);color:var(--primary-strong, #016b54);font-weight:600}.sourcing-tag-check{font-size:15px}.sourcing-supplier-config{border:1px solid var(--border, #e5e7eb);background:#fff;color:#6b7280;border-radius:6px;width:22px;height:22px;line-height:1;font-size:12px;cursor:pointer;padding:0;flex:0 0 auto}.sourcing-supplier-config:hover{border-color:var(--primary, #02a07c);color:var(--primary-strong, #016b54);background:var(--primary-soft, #e6f8f3)}.sourcing-supplier-dialog{max-width:560px;width:92vw}.sourcing-supplier-subtitle{margin:2px 0 0;font-size:12px;color:var(--text-muted, #6b7280)}.sourcing-supplier-body{display:flex;flex-direction:column;gap:12px;padding:18px 22px}.sourcing-supplier-searchbox{width:100%}.sourcing-supplier-list{display:flex;flex-direction:column;gap:8px;max-height:52vh;overflow-y:auto}.sourcing-supplier-row{display:flex;align-items:center;gap:6px}.sourcing-supplier-row.is-on{cursor:default}.sourcing-supplier-row .sourcing-supplier-pick{flex:1 1 auto;width:auto}.sourcing-supplier-drag{flex:0 0 auto;width:18px;text-align:center;cursor:grab;color:#b4b8c0;font-size:14px;letter-spacing:-2px;user-select:none}.sourcing-supplier-drag:active{cursor:grabbing}.sourcing-supplier-drag-sp{flex:0 0 auto;width:18px}.sourcing-supplier-pick{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:10px 12px;border:1px solid var(--border, #e5e7eb);border-radius:10px;background:#fff;cursor:pointer;font:inherit}.sourcing-supplier-pick:hover{background:var(--surface-muted, #f9fafb)}.sourcing-supplier-pick.is-on{border-color:var(--primary, #02a07c);background:var(--primary-soft, #e6f8f3)}.sourcing-supplier-check{font-size:16px;color:var(--primary-strong, #016b54);flex:0 0 auto}.sourcing-supplier-pick:not(.is-on) .sourcing-supplier-check{color:#c0c4cc}.sourcing-supplier-name{font-weight:600;color:#111827}.sourcing-supplier-meta{font-size:12px;color:var(--text-muted, #6b7280)}.sourcing-supplier-rfq{margin-left:auto;flex:0 0 auto;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:600;background:var(--surface-muted, #f3f4f6);color:var(--text-muted, #6b7280);white-space:nowrap}.sourcing-supplier-rfq.is-priced{background:var(--primary-soft, #e6f8f3);color:var(--primary-strong, #016b54)}.sourcing-supplier-save{min-width:132px}.sourcing-result-pill{border:1px solid var(--border, #e5e7eb);cursor:pointer;font:inherit;line-height:1.4}.sourcing-result-pill:hover{border-color:var(--primary, #02a07c)}.sourcing-result-pill.is-priced{background:var(--primary-soft, #e6f8f3);color:var(--primary-strong, #016b54);border-color:transparent;font-weight:600}.sourcing-price-overlay{position:fixed;inset:0;z-index:60}.sourcing-price-popover{position:absolute;z-index:61;width:340px;background:#fff;border:1px solid var(--border, #e5e7eb);border-radius:14px;box-shadow:0 14px 40px #0000002e;padding:18px 20px;display:flex;flex-direction:column;gap:14px}.sourcing-price-head{display:flex;align-items:center;justify-content:space-between}.sourcing-price-title{font-size:16px;font-weight:700;color:#111827}.sourcing-price-controls{display:flex;align-items:center;gap:8px}.sourcing-price-amount{flex:1 1 auto;min-width:0;text-align:right}.sourcing-price-cur{flex:0 0 76px}.sourcing-price-stock{flex:0 0 auto;padding:0 14px;height:38px;border:1px solid var(--border, #d1d5db);border-radius:8px;background:#fff;font-size:13px;color:var(--text-muted, #6b7280);cursor:pointer;white-space:nowrap}.sourcing-price-stock.on{background:#fef2f2;border-color:#fca5a5;color:#dc2626;font-weight:700}.sourcing-price-field{display:flex;flex-direction:column;gap:6px}.sourcing-price-field>label,.sourcing-price-field-title{font-size:12px;font-weight:600;color:var(--text-muted, #6b7280)}.sourcing-price-field>.input,.sourcing-price-field>.sourcing-alt-wrap>.input{width:100%}.sourcing-price-memo{min-height:64px}.sourcing-alt-wrap{position:relative}.sourcing-alt-results{display:flex;flex-direction:column;gap:4px;margin-top:6px;max-height:196px;overflow-y:auto}.sourcing-alt-results:empty{display:none}.sourcing-alt-note{font-size:12px;color:var(--text-muted, #6b7280);padding:4px 2px}.sourcing-alt-result{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--border, #e5e7eb);border-radius:8px;background:#fff}.sourcing-alt-result-info{min-width:0;flex:1 1 auto}.sourcing-alt-result-part{font-size:13px;font-weight:600;color:#111827}.sourcing-alt-result-desc{font-size:11px;color:var(--text-muted, #6b7280);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sourcing-alt-pick-btn{flex:0 0 auto;padding:5px 14px;border:1px solid var(--border, #d1d5db);border-radius:7px;background:#fff;font-size:12px;font-weight:600;color:var(--primary-strong, #016b54);cursor:pointer}.sourcing-alt-pick-btn:hover{background:var(--primary-soft, #e6f8f3);border-color:var(--primary, #02a07c)}.sourcing-tag-dd{position:relative}.sourcing-tag-dd-summary{display:flex;align-items:center;justify-content:space-between;width:100%;padding:9px 12px;border:1px solid var(--border, #d1d5db);border-radius:8px;background:#fff;font:inherit;color:#374151;cursor:pointer}.sourcing-tag-dd-caret{color:#9ca3af;font-size:11px}.sourcing-tag-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:5;background:#fff;border:1px solid var(--border, #e5e7eb);border-radius:8px;box-shadow:0 8px 24px #00000024;padding:6px;display:flex;flex-direction:column;gap:2px}.sourcing-tag-option{text-align:left;padding:8px 10px;border:0;background:transparent;border-radius:6px;font:inherit;color:#374151;cursor:pointer}.sourcing-tag-option:hover{background:var(--surface-muted, #f3f4f6)}.sourcing-tag-option.is-on{color:var(--primary-strong, #016b54);font-weight:600}.sourcing-price-actions{display:flex;justify-content:flex-end}.sourcing-price-save{min-width:110px}
