
:root {
  --brand:#111827;
  --accent:#2563eb;
  --muted:#6b7280;
  --line:#e5e7eb;
  --soft:#f8fafc;
  --card:#ffffff;
  --danger:#ef4444;
  --ok:#16a34a;
  --max:1180px;
}
* { box-sizing:border-box; }
body { margin:0; font-family:Arial,"Noto Sans KR",sans-serif; color:#111827; background:#fff; }
a { color:inherit; text-decoration:none; }
button, input, select { font-family:inherit; }
.excel-panel { border-bottom:1px solid var(--line); background:#f8fafc; }
.excel-panel .inner { max-width:var(--max); margin:auto; padding:12px; display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.excel-panel strong { margin-right:4px; font-size:13px; }
.file-label, .panel-btn { display:inline-flex; align-items:center; justify-content:center; min-height:34px; border:1px solid #cbd5e1; background:#fff; padding:7px 11px; font-size:13px; cursor:pointer; border-radius:8px; }
.file-label input { display:none; }
.panel-btn.primary { background:var(--brand); color:#fff; border-color:var(--brand); }
.status { color:#4b5563; font-size:12px; margin-left:auto; }
.status.ok { color:var(--ok); font-weight:700; }
.status.err { color:var(--danger); font-weight:700; }
.hint { width:100%; color:#6b7280; font-size:12px; line-height:1.55; }
.topbar { border-bottom:1px solid var(--line); font-size:13px; color:#4b5563; }
.topbar .inner { max-width:var(--max); margin:auto; display:flex; justify-content:space-between; padding:8px 12px; gap:16px; }
.utility a { margin-left:14px; }
.header { max-width:var(--max); margin:auto; padding:26px 12px 22px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.logo { display:flex; align-items:center; max-width:320px; min-height:48px; }
.logo img { display:block; max-width:100%; width:280px; height:auto; }
.logo.logo-text { font-size:30px; font-weight:800; letter-spacing:-1px; display:block; }
.logo.logo-text small { display:block; font-size:12px; color:var(--muted); font-weight:500; margin-top:6px; letter-spacing:0; }
.search { flex:1; max-width:420px; display:flex; border:2px solid var(--brand); }
.search input { border:0; padding:12px; flex:1; outline:none; }
.search button { border:0; background:var(--brand); color:#fff; padding:0 18px; cursor:pointer; }
.nav { border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.nav .inner { max-width:var(--max); margin:auto; display:flex; flex-wrap:wrap; gap:0; padding:0 12px; }
.nav a { padding:15px 18px; font-size:14px; font-weight:700; border-right:1px solid var(--line); }
.nav a:first-child { border-left:1px solid var(--line); }
.nav a.active { background:#111827; color:#fff; }
.wrap { max-width:var(--max); margin:0 auto; padding:26px 12px 60px; display:grid; grid-template-columns:220px minmax(0,1fr); gap:32px; }
.breadcrumb { grid-column:1/-1; color:var(--muted); font-size:13px; }
.sidebar { border:1px solid var(--line); align-self:start; }
.side-title { padding:16px; font-size:18px; font-weight:800; border-bottom:1px solid var(--line); background:var(--soft); }
.side-section { border-bottom:1px solid var(--line); padding:12px 16px; }
.side-section:last-child { border-bottom:0; }
.side-section strong { display:block; font-size:14px; margin-bottom:8px; }
.side-section a { display:block; color:#4b5563; font-size:13px; padding:4px 0; }
.content-head { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; border-bottom:2px solid #111827; padding-bottom:16px; margin-bottom:18px; }
h1 { margin:0; font-size:26px; letter-spacing:-.5px; }
.total { color:var(--muted); font-size:13px; }
.toolbar { display:flex; flex-direction:column; gap:12px; border-bottom:1px solid var(--line); padding:12px 0 20px; margin-bottom:24px; }
.toolbar-row { display:flex; justify-content:space-between; gap:12px; align-items:center; flex-wrap:wrap; }
.sorts, .inch-filter { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.inch-filter .filter-tabs { display:flex; flex-wrap:wrap; gap:6px; align-items:center; width:100%; margin-top:4px; }
.inch-filter .label { color:#4b5563; font-weight:700; font-size:13px; margin-right:2px; }
.sorts button, .inch-filter button, .filter select { border:1px solid var(--line); background:#fff; padding:8px 10px; cursor:pointer; font-size:13px; }
.sorts button.active, .inch-filter button.active { background:#111827; color:#fff; }
.grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px 20px; }
.card { background:var(--card); position:relative; }
.thumb-wrap { position:relative; }
.thumb { aspect-ratio:1/0.75; border:1px solid var(--line); background:linear-gradient(135deg,#f3f4f6,#ffffff); display:flex; align-items:center; justify-content:center; text-align:center; color:#6b7280; overflow:hidden; }
.thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.thumb .placeholder { padding:20px; line-height:1.5; }
.badge { position:absolute; z-index:2; background:#111827; color:#fff; font-size:11px; padding:5px 8px; border-radius:999px; white-space:nowrap; box-shadow:0 2px 6px rgba(0,0,0,.12); }
.tag-top-left { top:10px; left:10px; right:auto; bottom:auto; transform:none; }
.tag-top-center { top:10px; left:50%; right:auto; bottom:auto; transform:translateX(-50%); }
.tag-top-right { top:10px; right:10px; left:auto; bottom:auto; transform:none; }
.tag-bottom-left { bottom:10px; left:10px; right:auto; top:auto; transform:none; }
.tag-bottom-center { bottom:10px; left:50%; right:auto; top:auto; transform:translateX(-50%); }
.tag-bottom-right { bottom:10px; right:10px; left:auto; top:auto; transform:none; }
.wish { position:absolute; top:10px; right:10px; width:30px; height:30px; border-radius:50%; border:1px solid var(--line); background:#fff; z-index:3; }
.name { display:block; margin:12px 0 8px; font-size:14px; line-height:1.45; font-weight:700; min-height:62px; }
.name .model { color:var(--accent); display:block; margin-bottom:4px; }
.price { display:block; font-weight:800; font-size:15px; }
.meta { color:var(--muted); font-size:12px; margin-top:8px; }
.empty { border:1px dashed #cbd5e1; padding:36px 20px; color:#6b7280; text-align:center; background:#f8fafc; }
.pager { display:flex; justify-content:center; gap:8px; margin-top:42px; }
.pager a { border:1px solid var(--line); padding:8px 12px; font-size:13px; }
.pager .active { background:#111827; color:#fff; }
.detail { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:32px; }
.detail-image { border:1px solid var(--line); background:#fff; display:flex; align-items:center; justify-content:center; min-height:360px; }
.detail-image img { max-width:100%; height:auto; display:block; }
.detail-title { font-size:24px; line-height:1.35; font-weight:800; margin:0 0 12px; }
.detail-model { color:var(--accent); font-weight:800; margin-bottom:8px; }
.detail-price { font-size:22px; font-weight:900; margin:18px 0; }
.detail-summary { color:#4b5563; line-height:1.7; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:16px 0; margin:16px 0; }
.spec-list { margin:18px 0 0; padding:0; list-style:none; }
.spec-list li { display:grid; grid-template-columns:120px 1fr; gap:12px; padding:10px 0; border-bottom:1px solid var(--line); font-size:14px; }
.spec-list strong { color:#111827; }
.detail-spec-sheet-wrap { margin:18px 0 0; overflow-x:auto; border:1px solid var(--line); background:#fff; }
.detail-spec-sheet-wrap.full { margin-top:0; }
.detail-spec-sheet-title { padding:10px 12px; border-bottom:1px solid var(--line); background:#f8fafc; color:#111827; font-weight:800; }
.detail-spec-sheet { width:100%; min-width:560px; border-collapse:collapse; table-layout:fixed; }
.detail-spec-sheet th,.detail-spec-sheet td { border:1px solid var(--line); padding:10px 12px; font-size:14px; line-height:1.55; vertical-align:top; text-align:left; }
.detail-spec-sheet th { width:18%; background:#f8fafc; color:#111827; font-weight:800; }
.detail-spec-sheet td { width:32%; background:#fff; color:#374151; word-break:keep-all; }
.detail-spec-sheet-wrap.full .detail-spec-sheet { min-width:640px; table-layout:auto; }
.detail-spec-sheet-wrap.full .detail-spec-sheet th { width:180px; }
.detail-desc { margin-top:30px; padding:22px; background:#f8fafc; border:1px solid var(--line); line-height:1.7; color:#374151; }
.detail-desc .detail-spec-sheet-wrap { margin:0; }
.detail-desc-text { white-space:normal; }
.related-title { margin-top:36px; font-size:18px; font-weight:800; }
.footer { border-top:1px solid var(--line); background:#f9fafb; }
.footer .inner { max-width:var(--max); margin:auto; padding:32px 12px; display:grid; grid-template-columns:2fr 1fr 1fr; gap:24px; font-size:13px; color:#4b5563; line-height:1.8; }
.footer strong { display:block; color:#111827; font-size:16px; margin-bottom:8px; }
@media (max-width:900px) {
  .wrap { grid-template-columns:1fr; }
  .sidebar { order:2; }
  .grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .header { flex-direction:column; align-items:stretch; }
  .search { max-width:none; }
  .status { margin-left:0; }
  .detail { grid-template-columns:1fr; }
}
@media (max-width:560px) {
  .grid { grid-template-columns:1fr; }
  .toolbar-row, .content-head, .topbar .inner { flex-direction:column; align-items:flex-start; }
  .footer .inner { grid-template-columns:1fr; }
  .spec-list li { grid-template-columns:1fr; gap:4px; }
}

.csv-panel { border-bottom:1px solid var(--line); background:#f8fafc; }
.csv-panel .inner { max-width:var(--max); margin:auto; padding:12px; display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.csv-panel strong { margin-right:4px; font-size:13px; }
.detail-files { margin-top:24px; display:flex; flex-direction:column; gap:16px; }
.detail-file img { max-width:100%; border:1px solid var(--line); background:#fff; }
.detail-file iframe, .detail-file object { width:100%; min-height:620px; border:1px solid var(--line); background:#fff; }
.file-open { display:inline-block; border:1px solid var(--line); padding:10px 12px; margin-top:6px; border-radius:8px; background:#fff; font-weight:700; }

.file-notice { border:1px solid var(--line); background:#f8fafc; color:#4b5563; padding:12px; border-radius:8px; line-height:1.6; }

.file-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.doc-local-fallback object { min-height:520px; }


/* 관리자 모드 */
.csv-panel { display:none; }
body.admin-mode .csv-panel { display:block; }
.admin-login-open {
  position:fixed; right:14px; bottom:14px; z-index:10000;
  border:1px solid #111827; background:#111827; color:#fff;
  border-radius:999px; padding:10px 14px; font-weight:800; cursor:pointer;
  box-shadow:0 6px 18px rgba(0,0,0,.18);
}
body.admin-mode .admin-login-open { background:#2563eb; border-color:#2563eb; }
.admin-login-modal {
  display:none; position:fixed; inset:0; z-index:10001;
  background:rgba(15,23,42,.48); align-items:center; justify-content:center;
}
.admin-login-modal.show { display:flex; }
.admin-login-card {
  width:min(360px, calc(100vw - 32px)); background:#fff; border-radius:14px;
  box-shadow:0 22px 60px rgba(0,0,0,.32); padding:20px;
  display:flex; flex-direction:column; gap:10px;
}
.admin-login-card strong { font-size:18px; }
.admin-login-card input { border:1px solid #cbd5e1; border-radius:8px; padding:11px 12px; outline:none; }
.admin-login-actions { display:flex; gap:8px; justify-content:flex-end; }
.admin-login-actions button { border:1px solid #cbd5e1; background:#fff; border-radius:8px; padding:9px 12px; cursor:pointer; }
.admin-login-actions button:first-child { background:#111827; color:#fff; border-color:#111827; }
.admin-login-message { min-height:18px; color:#ef4444; font-size:12px; font-weight:700; }
.admin-tools { width:100%; display:flex; flex-wrap:wrap; gap:8px; align-items:center; padding-top:8px; border-top:1px dashed #cbd5e1; }
.admin-mode-status { font-size:12px; font-weight:800; color:#2563eb; margin-right:4px; }
body.admin-mode .card a,
body.admin-mode .nav a,
body.admin-mode .sidebar a,
body.admin-mode .footer,
body.admin-mode .detail,
body.admin-mode .content-head,
body.admin-mode .breadcrumb,
body.admin-mode .topbar,
body.admin-mode .header { cursor:help; }
body.admin-mode .thumb img,
body.admin-mode .detail-image img,
body.admin-mode .detail-file img { cursor:pointer; outline:2px dashed transparent; outline-offset:-3px; }
body.admin-mode .thumb img:hover,
body.admin-mode .detail-image img:hover,
body.admin-mode .detail-file img:hover { outline-color:#2563eb; }


/* 관리자 로그인 클릭 보강 */
.admin-login-box { position:relative; z-index:2147483000; }
.admin-login-open { pointer-events:auto; user-select:none; }
.admin-login-modal { pointer-events:auto; }
.admin-login-modal.show { display:flex !important; }
.admin-login-card { pointer-events:auto; }
body.admin-mode .csv-panel { display:block !important; }


/* fix3: 관리자 버튼/모달 최상단 표시 보강 */
.admin-login-box { position:fixed !important; right:14px !important; bottom:14px !important; z-index:2147483647 !important; }
.admin-login-open { position:static !important; display:inline-flex !important; align-items:center; justify-content:center; min-width:74px; }
.admin-login-modal { position:fixed !important; inset:0 !important; z-index:2147483646 !important; }


/* fix4: 관리자 로그인 버튼/모달 클릭 안정화 */
.admin-login-box {
  position:fixed !important;
  right:14px !important;
  bottom:14px !important;
  z-index:2147483646 !important;
  pointer-events:none !important;
}
.admin-login-open {
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:82px !important;
  pointer-events:auto !important;
  cursor:pointer !important;
}
.admin-login-modal {
  position:fixed !important;
  inset:0 !important;
  z-index:2147483647 !important;
  pointer-events:auto !important;
}
.admin-login-modal.show { display:flex !important; }
.admin-login-card,
.admin-login-card * { pointer-events:auto !important; }

/* fix5: 관리자 더블클릭 수정 위치 안내 */
.admin-target-highlight {
  outline: 3px solid #2563eb !important;
  outline-offset: 4px !important;
  box-shadow: 0 0 0 6px rgba(37,99,235,.16) !important;
  border-radius: 8px;
}
.admin-edit-guide {
  position: fixed;
  width: min(360px, calc(100vw - 24px));
  max-height: calc(100vh - 32px);
  overflow: auto;
  z-index: 2147483645;
  background: #ffffff;
  border: 2px solid #2563eb;
  border-radius: 14px;
  box-shadow: 0 18px 45px rgba(15,23,42,.28);
  padding: 14px;
  color: #111827;
  font-size: 13px;
  line-height: 1.55;
}
.admin-edit-guide strong { display:block; font-size:16px; margin-bottom:10px; color:#111827; }
.admin-edit-close {
  position:absolute;
  top:8px;
  right:8px;
  width:28px;
  height:28px;
  border:0;
  border-radius:999px;
  background:#e5e7eb;
  cursor:pointer;
  font-weight:800;
}
.admin-edit-line { display:grid; grid-template-columns:74px minmax(0,1fr); gap:8px; padding:6px 0; border-top:1px solid #e5e7eb; }
.admin-edit-line b { color:#374151; }
.admin-edit-line span { word-break:break-all; }
.admin-edit-line em { color:#6b7280; font-style:normal; }
.admin-edit-actions { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.admin-edit-actions button {
  border:1px solid #cbd5e1;
  background:#f8fafc;
  border-radius:8px;
  padding:8px 10px;
  cursor:pointer;
  font-size:12px;
}
.admin-edit-actions button:first-child { background:#111827; color:#fff; border-color:#111827; }
.admin-edit-guide p { margin:10px 0 0; color:#6b7280; font-size:12px; }
body.admin-mode [data-admin-source],
body.admin-mode [data-admin-file] { cursor:help; }


/* v23 관리자 즉석수정 보강 */
.admin-mode [data-admin-source]{outline-offset:2px}
.admin-mode [data-admin-source]:hover{outline:2px dashed rgba(37,99,235,.35)}
.front-temp-switch{display:inline-flex;align-items:center;gap:6px;margin-left:6px}
.front-temp-switch select{min-height:34px;border:1px solid #cbd5e1;border-radius:8px;padding:4px 8px;background:#fff;color:#111827;max-width:260px}

/* v26 inline admin edit sync patch */
.admin-mode [data-admin-source] { outline-offset: 2px; }
.admin-mode [data-admin-source]:hover { outline: 1px dashed rgba(37, 99, 235, .45); }


/* v49 shop/customer pages */
.shop-root { max-width:900px; }
.shop-card { border:1px solid var(--line); background:#fff; border-radius:14px; padding:22px; margin-bottom:18px; box-shadow:0 4px 18px rgba(15,23,42,.04); }
.shop-card h2 { margin:0 0 16px; font-size:20px; }
.shop-form { display:flex; flex-direction:column; gap:12px; }
.shop-form.narrow { max-width:480px; }
.shop-form label { display:flex; flex-direction:column; gap:6px; font-size:13px; font-weight:700; color:#374151; }
.shop-form input, .shop-form textarea { border:1px solid #cbd5e1; border-radius:10px; padding:11px 12px; font-size:14px; }
.shop-form textarea { min-height:92px; resize:vertical; }
.shop-form .check { flex-direction:row; align-items:flex-start; line-height:1.5; font-weight:500; }
.shop-form .check input { margin-top:3px; }
.shop-form .hp { position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.shop-btn, .shop-detail-actions button { display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:10px 14px; border:1px solid #111827; border-radius:10px; background:#fff; color:#111827; font-weight:800; cursor:pointer; }
.shop-btn.primary, .shop-detail-actions .primary { background:#111827; color:#fff; }
.shop-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.shop-grid2 { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:18px; align-items:start; }
.shop-table { width:100%; border-collapse:collapse; font-size:14px; }
.shop-table th, .shop-table td { border-bottom:1px solid var(--line); padding:10px 8px; text-align:left; vertical-align:top; }
.shop-table input[type=number] { width:70px; border:1px solid #cbd5e1; border-radius:8px; padding:7px; }
.shop-total { text-align:right; margin-top:14px; font-size:17px; }
.shop-line { display:flex; justify-content:space-between; gap:12px; border-bottom:1px solid var(--line); padding:10px 0; }
.shop-message { min-height:22px; font-weight:800; color:#6b7280; }
.shop-message.ok { color:#16a34a; }
.shop-message.err { color:#ef4444; }
.shop-result { border:1px solid #bbf7d0; background:#ecfdf5; border-radius:12px; padding:18px; line-height:1.7; }
.shop-detail-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:20px; }
.shop-popup-dim { position:fixed; inset:0; z-index:2147482000; background:rgba(15,23,42,.48); display:flex; align-items:center; justify-content:center; padding:18px; }
.shop-popup { width:min(520px, 100%); background:#fff; border-radius:18px; padding:24px; position:relative; box-shadow:0 24px 70px rgba(0,0,0,.32); }
.shop-popup h2 { margin:0 32px 12px 0; font-size:22px; }
.shop-popup-content { line-height:1.7; color:#374151; white-space:normal; }
.shop-popup-x { position:absolute; right:14px; top:12px; width:34px; height:34px; border:0; background:#f3f4f6; border-radius:50%; font-size:22px; cursor:pointer; }
.side-title a, .side-section strong a { color:inherit; text-decoration:none; }
@media (max-width:780px){ .shop-grid2 { grid-template-columns:1fr; } .shop-table { font-size:12px; } .shop-card { padding:16px; } }


.shop-guide { margin:10px 0 0; padding-left:20px; color:#475569; line-height:1.75; }
.shop-guide li { margin:4px 0; }
.lookup-result { margin-top:16px; }
.shop-result { border:1px solid var(--line); background:#f8fafc; border-radius:12px; padding:16px; margin-top:14px; }
.shop-message.ok { color:#166534; background:#ecfdf5; border-color:#bbf7d0; }
.shop-message.err { color:#991b1b; background:#fef2f2; border-color:#fecaca; }


/* v74: 상품 조건은 오른쪽 공통 드롭다운만 사용 */
.sorts { display:none; }
.sorts.hidden-sorts { display:none; }
.filter { margin-left:auto; }
.filter select { min-width:160px; }
.sidebar .side-section-all strong { display:block; padding:12px 14px; border-bottom:1px solid var(--line); }
.sidebar a.active { font-weight:800; background:#f3f4f6; }

.copyright-notice{border-top:1px solid #e5e7eb;margin:0 auto;max-width:var(--max);padding:10px 12px 18px;font-size:12px;color:#64748b;line-height:1.6}
/* HMI DGUS guide quick link */
.hmi-guide-link{margin:0 0 14px;padding:14px 16px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.hmi-guide-link .guide-btn{display:inline-flex;align-items:center;justify-content:center;padding:9px 14px;border-radius:10px;background:#111827;color:#fff;text-decoration:none;font-weight:700}
.hmi-guide-link .guide-btn:hover{background:#374151}
.hmi-guide-link span{color:#475569;font-size:13px}

/* 고객용 제품 추천 */
.recommend-shell { display:flex; flex-direction:column; gap:18px; }
.recommend-hero { border:1px solid var(--line); background:linear-gradient(135deg,#f8fafc,#ffffff); border-radius:18px; padding:22px; display:flex; justify-content:space-between; gap:18px; align-items:center; }
.recommend-hero strong { display:inline-flex; color:#2563eb; font-size:13px; margin-bottom:8px; }
.recommend-hero h2 { margin:0; font-size:24px; line-height:1.35; letter-spacing:-.5px; }
.recommend-hero p { margin:10px 0 0; color:#4b5563; line-height:1.65; font-size:14px; max-width:720px; }
.recommend-controls { border:1px solid var(--line); border-radius:16px; padding:16px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; background:#fff; }
.recommend-controls label { display:flex; flex-direction:column; gap:6px; font-size:12px; font-weight:800; color:#4b5563; }
.recommend-controls select, .recommend-controls input { min-height:38px; border:1px solid var(--line); border-radius:10px; padding:8px 10px; background:#fff; color:#111827; }
.recommend-control-wide { grid-column:1/-1; }
.recommend-control-wide label { display:block; }
.recommend-chip-row { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.recommend-chip-row button, .recommend-search-btn { min-height:38px; border:1px solid var(--line); border-radius:999px; background:#fff; padding:8px 12px; cursor:pointer; font-weight:800; color:#374151; }
.recommend-chip-row button.active, .recommend-search-btn { background:#111827; border-color:#111827; color:#fff; }
.recommend-search-label { grid-column:span 3; }
.recommend-search-btn { border-radius:10px; align-self:end; }
.recommend-guide { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.recommend-guide div { border:1px solid var(--line); background:#f8fafc; border-radius:14px; padding:12px; }
.recommend-guide b { display:block; font-size:13px; margin-bottom:4px; }
.recommend-guide span { display:block; color:#6b7280; font-size:12px; line-height:1.45; }
.recommend-result-head { display:flex; justify-content:space-between; align-items:flex-end; gap:12px; border-bottom:1px solid var(--line); padding-bottom:10px; }
.recommend-result-head h3 { margin:0; font-size:20px; }
.recommend-result-head span { color:#6b7280; font-size:13px; }
.recommend-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.recommend-card { border:1px solid var(--line); border-radius:18px; background:#fff; padding:14px; display:flex; flex-direction:column; gap:10px; min-width:0; box-shadow:0 10px 28px rgba(15,23,42,.04); }
.recommend-card-top { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.recommend-rank { background:#111827; color:#fff; border-radius:999px; padding:5px 8px; font-size:11px; font-weight:900; }
.recommend-type { color:#2563eb; background:#eff6ff; border-radius:999px; padding:5px 8px; font-size:11px; font-weight:900; }
.recommend-thumb { display:flex; align-items:center; justify-content:center; min-height:150px; border:1px solid var(--line); border-radius:14px; overflow:hidden; background:linear-gradient(135deg,#f3f4f6,#fff); }
.recommend-thumb img { width:100%; height:150px; object-fit:cover; display:block; }
.recommend-placeholder { display:flex; align-items:center; justify-content:center; min-height:150px; border:1px solid var(--line); border-radius:14px; background:linear-gradient(135deg,#f3f4f6,#fff); color:#6b7280; text-align:center; padding:14px; font-weight:900; }
.recommend-card-desktop .recommend-placeholder { font-size:34px; letter-spacing:.08em; color:#111827; }
.recommend-card h3 { margin:0; font-size:15px; line-height:1.45; min-height:44px; }
.recommend-model { color:#2563eb; font-weight:900; font-size:13px; }
.recommend-price { font-size:17px; font-weight:900; }
.recommend-card p { margin:0; color:#4b5563; font-size:13px; line-height:1.5; }
.recommend-badges { display:flex; flex-wrap:wrap; gap:6px; }
.recommend-badges span { border:1px solid var(--line); background:#f8fafc; border-radius:999px; padding:4px 7px; color:#374151; font-size:11px; font-weight:700; }
.recommend-reason { color:#4b5563; font-size:12px; line-height:1.55; background:#f8fafc; border-radius:12px; padding:9px; }
.recommend-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:auto; }
.recommend-actions .shop-btn, .recommend-actions button { min-height:36px; padding:8px 11px; border-radius:10px; border:1px solid #111827; background:#fff; color:#111827; font-weight:900; cursor:pointer; }
.recommend-actions .primary, .recommend-actions button.primary { background:#111827; color:#fff; }
@media (max-width:900px) {
  .recommend-hero { flex-direction:column; align-items:flex-start; }
  .recommend-controls { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .recommend-guide, .recommend-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .recommend-search-label { grid-column:span 1; }
}
@media (max-width:560px) {
  .recommend-controls, .recommend-guide, .recommend-grid { grid-template-columns:1fr; }
}

/* 데스크탑PC 조합 주문 상세 */
.shop-desktop-parts { margin-top:10px; border:1px solid var(--line); border-radius:12px; overflow:hidden; background:#f8fafc; }
.shop-desktop-parts-title { padding:9px 10px; font-weight:800; color:#0f172a; border-bottom:1px solid var(--line); background:#f1f5f9; }
.shop-desktop-parts table { width:100%; border-collapse:collapse; font-size:12px; }
.shop-desktop-parts th, .shop-desktop-parts td { padding:7px 8px; border-bottom:1px solid #e5e7eb; text-align:left; vertical-align:top; }
.shop-desktop-parts tr:last-child td { border-bottom:0; }
.shop-line .shop-desktop-parts { margin-top:8px; }
.shop-line > div { min-width:0; flex:1; }
@media (max-width:780px){ .shop-desktop-parts { overflow-x:auto; } .shop-desktop-parts table { min-width:560px; } }

/* Public product list: common search, pagination, and compare UI */
.public-list-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0 16px;padding:12px;border:1px solid #e5e7eb;border-radius:12px;background:#fff}
.public-list-controls label{display:flex;gap:6px;align-items:center;font-size:13px;color:#374151}
.public-list-controls input,.public-list-controls select{height:36px;border:1px solid #d1d5db;border-radius:8px;padding:0 10px;background:#fff}
.public-list-controls button,.public-list-pager button{height:36px;border:1px solid #d1d5db;border-radius:8px;background:#fff;padding:0 12px;cursor:pointer}
.public-list-pager{display:flex;gap:6px;align-items:center;margin-left:auto;flex-wrap:wrap}
.public-list-pager button.active{font-weight:700;border-color:#111827}
.public-list-pager button:disabled{opacity:.45;cursor:not-allowed}
.public-compare-label{display:flex;gap:6px;align-items:center;justify-content:center;margin:10px 12px 0;padding:8px;border:1px dashed #d1d5db;border-radius:8px;font-size:13px;color:#374151;background:#fafafa}
.public-compare-label input{width:16px;height:16px}
.public-compare-dock{position:fixed;left:20px;right:20px;bottom:20px;z-index:900;background:#fff;border:1px solid #d1d5db;border-radius:16px;box-shadow:0 12px 40px rgba(15,23,42,.16);padding:14px;max-height:44vh;overflow:auto}
.public-compare-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
.public-compare-head button{border:1px solid #d1d5db;border-radius:8px;background:#fff;padding:8px 12px;cursor:pointer}
.public-compare-table-wrap{overflow:auto}
.public-compare-table-wrap table{border-collapse:collapse;width:100%;min-width:620px;font-size:13px}
.public-compare-table-wrap th,.public-compare-table-wrap td{border:1px solid #e5e7eb;padding:8px;text-align:left;vertical-align:top;background:#fff}
.public-compare-table-wrap th{background:#f9fafb;font-weight:700}
@media (max-width:720px){.public-list-controls{align-items:stretch}.public-list-controls label{width:100%;justify-content:space-between}.public-list-pager{margin-left:0}.public-compare-dock{left:8px;right:8px;bottom:8px;max-height:55vh}}
/* public-index-common-filter-compare-fix */
.legacy-pager-hidden{display:none!important}
.public-list-controls #publicTouchFilter{min-width:160px}


/* kiosk menu/page patch */
.kiosk-subnav { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 14px; }
.kiosk-subnav a { border:1px solid var(--line); border-radius:999px; padding:9px 14px; font-size:13px; font-weight:800; background:#fff; color:#374151; }
.kiosk-subnav a.active { background:#111827; border-color:#111827; color:#fff; }
.kiosk-note { border:1px solid #dbeafe; background:#eff6ff; color:#1e3a8a; border-radius:12px; padding:12px 14px; font-size:13px; line-height:1.65; margin:0 0 16px; }
.side-section-kiosk a.active, .side-section-all a.active { color:#111827; font-weight:900; }
.kiosk-case-grid { display:grid; grid-template-columns:1fr; gap:18px; }
.kiosk-case-card { border:1px solid var(--line); border-radius:18px; background:#fff; padding:18px; display:grid; grid-template-columns:240px minmax(0,1fr); gap:20px; align-items:center; box-shadow:0 10px 24px rgba(15,23,42,.06); }
.kiosk-case-visual { min-height:220px; border:1px solid var(--line); border-radius:16px; background:#f8fafc; display:flex; align-items:center; justify-content:center; overflow:hidden; font-size:32px; font-weight:900; color:#94a3b8; }
.kiosk-case-visual img { width:100%; height:100%; object-fit:contain; }
.kiosk-case-badge { display:inline-flex; border-radius:999px; background:#eff6ff; color:#1d4ed8; padding:5px 10px; font-size:12px; font-weight:900; margin-bottom:8px; }
.kiosk-case-card h2 { margin:0 0 8px; font-size:20px; }
.kiosk-case-card p { margin:0 0 12px; color:#4b5563; line-height:1.65; }
.kiosk-case-card dl { display:grid; grid-template-columns:90px 1fr; gap:7px 12px; margin:0; font-size:13px; }
.kiosk-case-card dt { color:#111827; font-weight:900; }
.kiosk-case-card dd { margin:0; color:#4b5563; }
@media (max-width:760px){ .kiosk-case-card { grid-template-columns:1fr; } }

#detailRoot > .spec-list{margin:18px 0 0;width:100%;}
#detailRoot > .spec-list .detail-spec-sheet-wrap{margin-top:0;}
#detailRoot > .detail-desc{margin-top:16px;}

/* ORDER-PAYMENT-KEEP: index 주문 결제수단/단가협의 안내 박스. 10대 기준 주문 흐름과 DB 주문건 기록 연동을 삭제/원복하지 마십시오. */
.shop-payment-box{border:1px solid #d9e2ef;border-radius:12px;padding:12px;background:#f8fbff;display:grid;gap:8px;margin:12px 0;}
.shop-payment-box.consult{background:#fff8ed;border-color:#f0d7aa;}
.shop-payment-box label.check{display:flex;gap:8px;align-items:center;font-size:14px;}
.shop-payment-box .shop-note{margin:0;color:#64748b;font-size:13px;}

/* v50 inventory lead-time display */
.stock-leadtime{display:inline-flex;align-items:center;gap:6px;margin:8px 0 6px;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700;line-height:1.3;background:#f4f6f8;color:#1f2937;border:1px solid #d8dee8;vertical-align:middle}
.stock-leadtime.stock-ok{background:#eefbf3;color:#166534;border-color:#bbf7d0}
.stock-leadtime.stock-low{background:#fff7ed;color:#9a3412;border-color:#fed7aa}
.stock-leadtime.stock-none{background:#f8fafc;color:#475569;border-color:#cbd5e1}
.stock-leadtime .stock-qty{font-weight:600;opacity:.78}
.stock-consult-actions .primary{background:#475569;border-color:#475569}
.shop-table .stock-leadtime,.shop-line .stock-leadtime{margin-top:6px;margin-bottom:0}

/* CSV 편집 모드 제거 후 관리자 빠른 진입 버튼 */
.admin-quick-tools {
  margin-top:8px !important;
  padding:8px !important;
  border:1px solid #cbd5e1 !important;
  border-radius:12px !important;
  background:#fff !important;
  box-shadow:0 10px 24px rgba(15,23,42,.12) !important;
  max-width:260px !important;
  justify-content:flex-end !important;
  pointer-events:auto !important;
}
.admin-quick-tools * { pointer-events:auto !important; }
.admin-quick-tools[hidden] { display:none !important; }
body.admin-mode .csv-panel { display:none !important; }
