/* ═══════════════════════════════════════
   KoFab v4 Design System
   Light & Professional Manufacturing Platform
═══════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Syne:wght@600;700;800&family=Noto+Sans+KR:wght@300;400;500;700&display=swap');

:root {
  /* Palette */
  --bg:       #f4f5f8;
  --bg2:      #ffffff;
  --bg3:      #eef0f6;
  --surface:  #f9fafc;
  --border:   #e3e6f0;
  --border2:  #c8cde3;

  /* Brand */
  --amber:    #e07b0d;
  --amber-h:  #c96b08;
  --amber-lt: #fff4e5;
  --amber-bd: #f8c88a;

  /* Semantic */
  --blue:     #2563eb;
  --blue-lt:  #eff4ff;
  --green:    #16a34a;
  --green-lt: #f0fdf4;
  --red:      #dc2626;
  --red-lt:   #fff1f1;
  --purple:   #7c3aed;
  --purple-lt:#f5f3ff;

  /* Text */
  --text:     #111827;
  --text2:    #374151;
  --text3:    #6b7280;
  --muted:    #9ca3af;

  /* Effects */
  --shadow-sm:  0 1px 3px rgba(17,24,39,.07), 0 1px 2px rgba(17,24,39,.05);
  --shadow:     0 2px 8px rgba(17,24,39,.08), 0 4px 16px rgba(17,24,39,.06);
  --shadow-lg:  0 8px 32px rgba(17,24,39,.12), 0 2px 8px rgba(17,24,39,.06);
  --shadow-xl:  0 20px 60px rgba(17,24,39,.18);

  --radius-sm:  6px;
  --radius:     10px;
  --radius-lg:  14px;
  --radius-xl:  20px;

  --font-en:  'Syne', sans-serif;
  --font-kr:  'Noto Sans KR', sans-serif;
  --transition: all .18s cubic-bezier(.4,0,.2,1);
}

/* Reset */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:var(--font-kr); background:var(--bg); color:var(--text); line-height:1.6; overflow-x:hidden; }
a { text-decoration:none; color:inherit; }

/* ── SCROLLBAR ── */
::-webkit-scrollbar { width:6px; height:6px; }
::-webkit-scrollbar-track { background:var(--bg3); }
::-webkit-scrollbar-thumb { background:var(--border2); border-radius:3px; }
::-webkit-scrollbar-thumb:hover { background:var(--text3); }

/* ── BUTTONS ── */
.btn { display:inline-flex; align-items:center; gap:6px; padding:.6rem 1.2rem; border-radius:var(--radius-sm); font-family:var(--font-kr); font-size:.875rem; font-weight:500; cursor:pointer; transition:var(--transition); border:none; white-space:nowrap; }
.btn-primary { background:var(--amber); color:#fff; }
.btn-primary:hover { background:var(--amber-h); transform:translateY(-1px); box-shadow:0 4px 14px rgba(224,123,13,.35); }
.btn-primary.lg { padding:.8rem 1.8rem; font-size:.95rem; }
.btn-secondary { background:var(--bg2); color:var(--text2); border:1.5px solid var(--border); }
.btn-secondary:hover { border-color:var(--amber); color:var(--amber); }
.btn-ghost { background:transparent; color:var(--text3); padding:.5rem .9rem; }
.btn-ghost:hover { background:var(--bg3); color:var(--text); }
.btn-blue { background:var(--blue); color:#fff; }
.btn-blue:hover { background:#1d4ed8; }
.btn-green { background:var(--green); color:#fff; }
.btn-green:hover { background:#15803d; }
.btn-danger { background:var(--red-lt); color:var(--red); border:1px solid #fecaca; }
.btn-danger:hover { background:var(--red); color:#fff; }
.btn:disabled { opacity:.5; cursor:not-allowed; transform:none !important; }

/* ── FORM ELEMENTS ── */
input, select, textarea {
  width:100%; background:var(--bg2); border:1.5px solid var(--border);
  border-radius:var(--radius-sm); padding:.65rem 1rem;
  color:var(--text); font-family:var(--font-kr); font-size:.875rem;
  outline:none; transition:border-color .15s, box-shadow .15s;
}
input:focus, select:focus, textarea:focus { border-color:var(--amber); box-shadow:0 0 0 3px rgba(224,123,13,.1); }
select option { background:var(--bg2); }
textarea { resize:vertical; min-height:80px; }
label { font-size:.8rem; font-weight:500; color:var(--text3); display:block; margin-bottom:5px; }
.req { color:var(--amber); }

.form-group { display:flex; flex-direction:column; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.form-row.three { grid-template-columns:1fr 1fr 1fr; }
.form-full { grid-column:1/-1; }

/* ── STATUS BADGES ── */
.badge { display:inline-flex; align-items:center; gap:4px; padding:3px 9px; border-radius:20px; font-size:.73rem; font-weight:600; }
.badge::before { content:''; width:5px; height:5px; border-radius:50%; flex-shrink:0; }
.badge.new { background:var(--amber-lt); color:var(--amber); border:1px solid var(--amber-bd); }
.badge.new::before { background:var(--amber); }
.badge.processing { background:var(--blue-lt); color:var(--blue); border:1px solid #bfdbfe; }
.badge.processing::before { background:var(--blue); }
.badge.done { background:var(--green-lt); color:var(--green); border:1px solid #bbf7d0; }
.badge.done::before { background:var(--green); }
.badge.cancelled { background:#f9fafb; color:var(--text3); border:1px solid var(--border); }
.badge.cancelled::before { background:var(--text3); }
.badge.pending { background:var(--purple-lt); color:var(--purple); border:1px solid #ddd6fe; }
.badge.pending::before { background:var(--purple); }

/* ── TOAST ── */
.toast { position:fixed; bottom:1.5rem; right:1.5rem; background:var(--text); color:#fff; padding:.9rem 1.4rem; border-radius:var(--radius); font-size:.875rem; font-weight:500; transform:translateY(100px); opacity:0; transition:all .4s cubic-bezier(.34,1.56,.64,1); z-index:9999; max-width:340px; box-shadow:var(--shadow-lg); display:flex; align-items:center; gap:.6rem; }
.toast.show { transform:translateY(0); opacity:1; }
.toast.success { background:#1a3d2b; }
.toast.error { background:#7f1d1d; }
.toast.info { background:#1e3a5f; }

/* ── DASHBOARD SHELL ── */
.dash-body { display:flex; min-height:100vh; background:var(--bg); }

/* SIDEBAR */
.sidebar {
  width:240px; flex-shrink:0; background:var(--bg2);
  border-right:1px solid var(--border); display:flex;
  flex-direction:column; min-height:100vh; position:sticky; top:0; z-index:100;
}
.sb-header { padding:1.2rem 1.4rem; border-bottom:1px solid var(--border); }
.sb-logo { display:flex; align-items:center; gap:.7rem; margin-bottom:.8rem; }
.sb-logo-text { font-family:var(--font-en); font-size:1.3rem; font-weight:800; color:var(--text); letter-spacing:-.5px; }
.sb-logo-text span { color:var(--amber); }
.role-pill { font-size:.65rem; font-weight:700; padding:3px 9px; border-radius:20px; }
.role-pill.partner { background:var(--amber-lt); color:var(--amber); border:1px solid var(--amber-bd); }
.role-pill.customer { background:var(--blue-lt); color:var(--blue); border:1px solid #bfdbfe; }
.role-pill.admin { background:var(--red-lt); color:var(--red); border:1px solid #fecaca; }

.sb-user { display:flex; align-items:center; gap:.8rem; padding:.5rem 0; }
.sb-avatar { width:34px; height:34px; border-radius:8px; background:var(--amber-lt); border:1px solid var(--amber-bd); display:flex; align-items:center; justify-content:center; font-family:var(--font-en); font-weight:800; font-size:.9rem; color:var(--amber); flex-shrink:0; }
.sb-name { font-size:.85rem; font-weight:600; color:var(--text); line-height:1.2; }
.sb-company { font-size:.72rem; color:var(--muted); }

/* NAV */
.sb-section-label { font-size:.65rem; font-weight:700; color:var(--muted); letter-spacing:1.5px; text-transform:uppercase; padding:.5rem 1.4rem; }
.sb-nav { flex:1; padding:.5rem 0; }
.snav {
  display:flex; align-items:center; gap:.7rem; padding:.65rem 1.4rem;
  font-size:.855rem; color:var(--text3); cursor:pointer; position:relative;
  transition:var(--transition); border-radius:0;
}
.snav:hover { color:var(--text); background:var(--bg3); }
.snav.active { color:var(--amber); background:var(--amber-lt); font-weight:600; }
.snav.active::before { content:''; position:absolute; left:0; top:20%; bottom:20%; width:3px; background:var(--amber); border-radius:0 3px 3px 0; }
.snav .sn-icon { width:18px; font-size:1rem; flex-shrink:0; }
.snav .sn-count { margin-left:auto; background:var(--amber); color:#fff; font-size:.65rem; font-weight:700; padding:1px 7px; border-radius:10px; min-width:20px; text-align:center; }
.sb-divider { height:1px; background:var(--border); margin:.4rem 1rem; }
.sb-footer { padding:.5rem 0; border-top:1px solid var(--border); }

/* MAIN */
.dash-main { flex:1; display:flex; flex-direction:column; min-width:0; overflow:hidden; }

/* TOP BAR */
.topbar {
  background:var(--bg2); border-bottom:1px solid var(--border);
  padding:.85rem 1.8rem; display:flex; align-items:center; gap:1rem;
  position:sticky; top:0; z-index:50; flex-wrap:wrap;
}
.topbar-title { font-family:var(--font-en); font-size:1.1rem; font-weight:700; color:var(--text); margin-right:auto; }
.topbar-search { flex:1; max-width:320px; position:relative; }
.topbar-search input { padding-left:2.2rem; background:var(--bg3); border-color:transparent; font-size:.83rem; }
.topbar-search input:focus { background:var(--bg2); border-color:var(--amber); }
.topbar-search .search-ic { position:absolute; left:.7rem; top:50%; transform:translateY(-50%); color:var(--muted); font-size:.9rem; pointer-events:none; }

/* CONTENT PAGES */
.dash-content { flex:1; overflow-y:auto; }
.page { display:none; }
.page.active { display:flex; flex-direction:column; }

/* ── TWO-PANEL LAYOUT ── */
.two-panel { display:flex; height:calc(100vh - 57px); overflow:hidden; }
.panel-left { width:380px; flex-shrink:0; border-right:1px solid var(--border); display:flex; flex-direction:column; overflow:hidden; }
.panel-right { flex:1; overflow-y:auto; background:var(--surface); }

/* FILTER PANEL */
.filter-bar { padding:.8rem 1rem; border-bottom:1px solid var(--border); display:flex; gap:.5rem; flex-wrap:wrap; background:var(--bg2); }
.filter-bar select { flex:1; min-width:100px; font-size:.8rem; padding:.45rem .7rem; background:var(--bg3); border-color:transparent; }
.filter-bar input { flex:1.5; font-size:.8rem; padding:.45rem .7rem; background:var(--bg3); border-color:transparent; }

/* PROJECT LIST */
.project-list { overflow-y:auto; flex:1; }
.project-item {
  display:flex; align-items:flex-start; gap:.9rem; padding:1rem 1.1rem;
  border-bottom:1px solid var(--border); cursor:pointer;
  transition:var(--transition); position:relative;
}
.project-item:hover { background:var(--bg3); }
.project-item.active { background:var(--amber-lt); border-bottom-color:var(--amber-bd); }
.project-item.active::after { content:''; position:absolute; right:0; top:0; bottom:0; width:3px; background:var(--amber); }
.proj-thumb { width:56px; height:56px; flex-shrink:0; border-radius:8px; overflow:hidden; background:var(--bg3); border:1px solid var(--border); display:flex; align-items:center; justify-content:center; }
.proj-thumb img { width:100%; height:100%; object-fit:cover; }
.proj-thumb-icon { font-size:1.5rem; }
.proj-info { flex:1; min-width:0; }
.proj-title { font-size:.88rem; font-weight:600; color:var(--text); margin-bottom:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.proj-meta { font-size:.74rem; color:var(--text3); margin-bottom:5px; }
.proj-service { font-size:.73rem; color:var(--text3); background:var(--bg3); padding:2px 7px; border-radius:4px; display:inline-block; }
.proj-footer { display:flex; align-items:center; justify-content:space-between; margin-top:5px; }
.proj-partner-count { font-size:.72rem; color:var(--text3); }
.proj-new-dot { width:8px; height:8px; background:var(--amber); border-radius:50%; flex-shrink:0; margin-top:4px; }

/* ── DETAIL PANEL ── */
.detail-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; height:100%; color:var(--muted); gap:1rem; text-align:center; padding:2rem; }
.detail-empty-icon { font-size:3.5rem; }
.detail-empty p { font-size:.9rem; }

.detail-wrap { height:100%; display:flex; flex-direction:column; }

/* DETAIL TABS */
.detail-tabs { display:flex; border-bottom:1px solid var(--border); background:var(--bg2); flex-shrink:0; }
.detail-tab { padding:.75rem 1.2rem; font-size:.83rem; font-weight:500; color:var(--text3); cursor:pointer; border-bottom:2px solid transparent; transition:var(--transition); white-space:nowrap; }
.detail-tab:hover { color:var(--text); }
.detail-tab.active { color:var(--amber); border-bottom-color:var(--amber); font-weight:600; }

.detail-body { flex:1; overflow-y:auto; }

/* RFQ DETAIL */
.rfq-detail { padding:1.4rem; }
.detail-section { margin-bottom:1.4rem; }
.detail-section-title { font-size:.75rem; font-weight:700; color:var(--text3); text-transform:uppercase; letter-spacing:1px; margin-bottom:.8rem; padding-bottom:.5rem; border-bottom:1px solid var(--border); }
.info-table { display:grid; grid-template-columns:auto 1fr; gap:.35rem 1rem; }
.info-key { font-size:.78rem; color:var(--muted); white-space:nowrap; padding:.2rem 0; }
.info-val { font-size:.82rem; color:var(--text); font-weight:500; padding:.2rem 0; }
.info-val.full { grid-column:1/-1; font-size:.82rem; color:var(--text2); line-height:1.6; background:var(--bg3); padding:.6rem .8rem; border-radius:6px; }

/* FILE LIST IN DETAIL */
.file-list-compact { display:flex; flex-direction:column; gap:.4rem; }
.file-item-compact {
  display:flex; align-items:center; gap:.7rem; padding:.55rem .7rem;
  border:1px solid var(--border); border-radius:var(--radius-sm);
  cursor:pointer; background:var(--bg2); transition:var(--transition);
}
.file-item-compact:hover, .file-item-compact.active { border-color:var(--amber); background:var(--amber-lt); }
.file-ext { font-size:.62rem; font-weight:700; padding:2px 6px; border-radius:3px; flex-shrink:0; background:var(--bg3); color:var(--text3); border:1px solid var(--border); }
.file-ext.stl { background:#fef3c7; color:#92400e; border-color:#fde68a; }
.file-ext.step, .file-ext.stp { background:#ede9fe; color:#4c1d95; border-color:#c4b5fd; }
.file-ext.dxf, .file-ext.dwg { background:#e0f2fe; color:#0c4a6e; border-color:#bae6fd; }
.file-ext.pdf { background:#fee2e2; color:#991b1b; border-color:#fca5a5; }
.file-item-name { font-size:.8rem; color:var(--text); flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.file-item-size { font-size:.7rem; color:var(--muted); flex-shrink:0; }
.file-item-dl { color:var(--amber); font-size:.8rem; padding:3px 6px; flex-shrink:0; border-radius:4px; }
.file-item-dl:hover { background:var(--amber); color:#fff; }

/* ── FILE VIEWER PANEL ── */
.viewer-panel { display:flex; flex-direction:column; height:100%; }
.viewer-topbar { display:flex; align-items:center; gap:.8rem; padding:.7rem 1.1rem; background:var(--bg2); border-bottom:1px solid var(--border); flex-shrink:0; }
.viewer-filename { font-size:.83rem; font-weight:600; color:var(--text); flex:1; overflow:hidden; text-overflow:ellipsis; }
.viewer-actions { display:flex; gap:.4rem; }
.viewer-area { flex:1; position:relative; overflow:hidden; background:#e8eaf2; }
.viewer-canvas { width:100%; height:100%; display:block; }
.viewer-empty-state { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; color:var(--muted); gap:.8rem; }
.viewer-info-chip { position:absolute; top:.8rem; left:.8rem; background:rgba(255,255,255,.92); border:1px solid var(--border); border-radius:var(--radius-sm); padding:.5rem .8rem; font-size:.74rem; color:var(--text2); backdrop-filter:blur(4px); max-width:240px; }
.viewer-info-chip table { border-collapse:collapse; }
.viewer-info-chip td { padding:1px 6px 1px 0; }
.viewer-info-chip td:first-child { color:var(--muted); white-space:nowrap; }
.viewer-hint { position:absolute; bottom:.8rem; left:50%; transform:translateX(-50%); background:rgba(0,0,0,.55); color:#fff; font-size:.72rem; padding:4px 12px; border-radius:20px; pointer-events:none; white-space:nowrap; }

/* ── QUOTE FORM ── */
.quote-form-wrap { padding:1.4rem; }
.quote-line-table { width:100%; border-collapse:collapse; margin-bottom:1rem; font-size:.82rem; }
.quote-line-table th { background:var(--bg3); padding:.55rem .7rem; text-align:left; font-size:.72rem; font-weight:600; color:var(--text3); border-bottom:1px solid var(--border); }
.quote-line-table td { padding:.45rem .5rem; border-bottom:1px solid var(--border); vertical-align:middle; }
.quote-line-table input { padding:.4rem .6rem; font-size:.8rem; }
.quote-line-table select { padding:.4rem .6rem; font-size:.8rem; }
.btn-add-line { width:100%; padding:.55rem; border:1.5px dashed var(--border2); background:transparent; color:var(--text3); border-radius:var(--radius-sm); cursor:pointer; font-size:.8rem; transition:var(--transition); }
.btn-add-line:hover { border-color:var(--amber); color:var(--amber); }
.quote-summary { background:var(--bg3); border-radius:var(--radius); padding:1rem 1.2rem; margin-top:1rem; }
.quote-summary-row { display:flex; justify-content:space-between; font-size:.83rem; padding:.25rem 0; color:var(--text2); }
.quote-summary-row.total { font-weight:700; color:var(--text); font-size:.95rem; border-top:1px solid var(--border2); margin-top:.4rem; padding-top:.6rem; }
.vat-row { display:flex; align-items:center; gap:.5rem; }
.vat-row input[type=number] { width:60px; }

/* ── CUSTOMER VIEW ── */
.rfq-cards { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px,1fr)); gap:1rem; padding:1.4rem; }
.rfq-card-v4 {
  background:var(--bg2); border:1px solid var(--border);
  border-radius:var(--radius-lg); overflow:hidden;
  transition:var(--transition); cursor:pointer; box-shadow:var(--shadow-sm);
}
.rfq-card-v4:hover { border-color:var(--amber-bd); box-shadow:var(--shadow); transform:translateY(-2px); }
.rfq-card-thumb { height:120px; background:linear-gradient(135deg,var(--bg3),var(--border)); display:flex; align-items:center; justify-content:center; font-size:2.5rem; position:relative; overflow:hidden; }
.rfq-card-thumb.has-file { background:#1a1f2e; }
.rfq-card-content { padding:1rem; }
.rfq-card-header { display:flex; align-items:flex-start; justify-content:space-between; gap:.5rem; margin-bottom:.6rem; }
.rfq-card-title { font-size:.9rem; font-weight:600; color:var(--text); line-height:1.3; }
.rfq-card-id { font-size:.72rem; color:var(--muted); margin-bottom:.5rem; }
.rfq-card-tags { display:flex; flex-wrap:wrap; gap:.3rem; margin-bottom:.7rem; }
.rfq-tag { font-size:.7rem; padding:2px 8px; border-radius:4px; background:var(--bg3); color:var(--text3); border:1px solid var(--border); }
.rfq-card-footer { display:flex; align-items:center; justify-content:space-between; padding-top:.7rem; border-top:1px solid var(--border); }
.rfq-quote-count { font-size:.76rem; color:var(--text3); display:flex; align-items:center; gap:.3rem; }
.rfq-quote-count.has-quotes { color:var(--green); }
.rfq-card-date { font-size:.72rem; color:var(--muted); }

/* QUOTE CARDS for customer */
.quote-cards { display:flex; flex-direction:column; gap:.8rem; }
.quote-card-v4 {
  background:var(--bg2); border:1.5px solid var(--border);
  border-radius:var(--radius); padding:1.1rem; transition:var(--transition);
}
.quote-card-v4:hover { border-color:var(--amber-bd); box-shadow:var(--shadow-sm); }
.quote-card-v4.best { border-color:var(--amber); background:var(--amber-lt); }
.qc-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:.7rem; }
.qc-partner { font-weight:600; font-size:.88rem; display:flex; align-items:center; gap:.5rem; }
.qc-rating { color:var(--amber); font-size:.78rem; }
.qc-price { font-family:var(--font-en); font-size:1.4rem; font-weight:700; color:var(--amber); }
.qc-price-label { font-size:.72rem; color:var(--muted); }
.qc-details { display:grid; grid-template-columns:1fr 1fr; gap:.4rem; margin-bottom:.8rem; }
.qc-detail { font-size:.78rem; color:var(--text3); }
.qc-detail strong { color:var(--text); }
.qc-note { font-size:.8rem; color:var(--text2); background:var(--bg3); padding:.5rem .7rem; border-radius:6px; line-height:1.6; }
.qc-actions { display:flex; gap:.5rem; margin-top:.8rem; }

/* LOGIN */
.login-page { min-height:100vh; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#f4f5f8 0%,#fff8ee 100%); padding:1.5rem; }
.login-box { background:var(--bg2); border:1px solid var(--border); border-radius:var(--radius-xl); padding:2.5rem; width:100%; max-width:460px; box-shadow:var(--shadow-xl); }
.login-logo { font-family:var(--font-en); font-size:2rem; font-weight:800; text-align:center; color:var(--text); letter-spacing:-1px; margin-bottom:.3rem; }
.login-logo span { color:var(--amber); }
.login-sub { text-align:center; color:var(--muted); font-size:.85rem; margin-bottom:2rem; }
.role-selector { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; margin-bottom:1.5rem; }
.role-opt { border:1.5px solid var(--border); border-radius:var(--radius); padding:.9rem; text-align:center; cursor:pointer; transition:var(--transition); background:var(--surface); }
.role-opt:hover { border-color:var(--amber-bd); }
.role-opt.sel { border-color:var(--amber); background:var(--amber-lt); }
.role-opt-icon { font-size:1.5rem; margin-bottom:.3rem; }
.role-opt-label { font-size:.83rem; font-weight:700; color:var(--text); }
.role-opt-desc { font-size:.7rem; color:var(--muted); margin-top:1px; }
.login-tabs { display:flex; border:1.5px solid var(--border); border-radius:var(--radius-sm); overflow:hidden; margin-bottom:1.4rem; }
.login-tab { flex:1; padding:.6rem; background:transparent; border:none; font-family:var(--font-kr); font-size:.85rem; cursor:pointer; color:var(--muted); transition:var(--transition); }
.login-tab.active { background:var(--amber); color:#fff; font-weight:700; }
.login-divider { display:flex; align-items:center; gap:.8rem; color:var(--muted); font-size:.78rem; margin:1rem 0; }
.login-divider::before, .login-divider::after { content:''; flex:1; height:1px; background:var(--border); }
.test-accounts { background:var(--bg3); border-radius:var(--radius); padding:.9rem 1rem; margin-top:1rem; }
.test-accounts h5 { font-size:.72rem; color:var(--muted); margin-bottom:.5rem; font-weight:500; }
.test-row { display:flex; justify-content:space-between; align-items:center; font-size:.76rem; color:var(--text3); padding:2px 0; gap:.5rem; }
.test-fill-btn { font-size:.7rem; color:var(--amber); cursor:pointer; }

/* ── RESPONSIVE ── */
@media(max-width:1100px) { .panel-left { width:320px; } }
@media(max-width:900px) {
  .sidebar { display:none; }
  .two-panel { flex-direction:column; height:auto; }
  .panel-left { width:100%; height:auto; border-right:none; border-bottom:1px solid var(--border); max-height:50vh; }
  .rfq-cards { grid-template-columns:1fr; }
}
@media(max-width:600px) {
  .form-row { grid-template-columns:1fr; }
  .form-row.three { grid-template-columns:1fr; }
}
