/* ═══════════════════════════════════════════════
   온라인 거래 게시판 전용 – online.css
   ═══════════════════════════════════════════════ */
:root {
  --onl-primary: #7c3aed;
  --onl-dark:    #4c1d95;
  --onl-light:   #ede9fe;
  --onl-bg:      #f5f3ff;
}

/* ── sector-inner grid 탈출 ── */
.onl-subnav,
.onl-page-header,
.onl-type-tabs,
.onl-filter,
.onl-content-wrap { grid-column: 1 / -1; width: 100%; box-sizing: border-box; }

/* ── 서브네비 ── */
.onl-subnav { background:#fff; border-bottom:1px solid #e2e8f0; position:sticky; top:0; z-index:50; }
.onl-subnav-inner { max-width:1100px; margin:0 auto; display:flex; flex-wrap:wrap; gap:4px; padding:10px 16px; align-items:center; }
.onl-snav-item { display:inline-flex; align-items:center; gap:5px; padding:7px 14px; border-radius:20px; background:#f1f5f9; color:#475569; font-size:13px; font-weight:500; text-decoration:none; transition:all .15s; }
.onl-snav-item:hover,.onl-snav-item.active { background:var(--onl-primary); color:#fff; }
.onl-snav-write { margin-left:auto; display:inline-flex; align-items:center; gap:6px; padding:7px 16px; border-radius:20px; background:var(--onl-primary); color:#fff; font-size:13px; font-weight:600; text-decoration:none; }
.onl-snav-write:hover { background:var(--onl-dark); }

/* ── 헤더 ── */
.onl-page-header { background:linear-gradient(135deg,#7c3aed 0%,#a855f7 100%); color:#fff; padding:28px 24px; }
.onl-page-header-inner { max-width:1100px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; }
.onl-page-header h1 { margin:0 0 6px; font-size:24px; font-weight:800; }
.onl-page-header p  { margin:0; opacity:.88; font-size:13.5px; }

/* ── 거래유형 탭 ── */
.onl-type-tabs { background:#fff; border-bottom:1px solid #e2e8f0; }
.onl-type-tabs-inner { max-width:1100px; margin:0 auto; display:flex; overflow-x:auto; }
.onl-ttab { display:flex; align-items:center; gap:6px; padding:11px 20px; font-size:13.5px; font-weight:600; color:#64748b; text-decoration:none; border-bottom:2px solid transparent; white-space:nowrap; transition:all .15s; }
.onl-ttab:hover  { color:var(--onl-primary); }
.onl-ttab.active { color:var(--onl-primary); border-bottom-color:var(--onl-primary); }
.onl-ttab-cnt { font-size:11px; background:#f1f5f9; border-radius:10px; padding:1px 7px; }
.onl-ttab.active .onl-ttab-cnt { background:var(--onl-light); color:var(--onl-dark); }

/* ── 필터 ── */
.onl-filter-panel { background:#fff; border-bottom:1px solid #e2e8f0; padding:12px 0; }
.onl-filter-inner { max-width:1100px; margin:0 auto; padding:0 16px; display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.onl-fselect,.onl-finput { padding:6px 10px; border:1.5px solid #e2e8f0; border-radius:8px; font-size:13px; color:#374151; background:#fff; }
.onl-fselect:focus,.onl-finput:focus { outline:none; border-color:var(--onl-primary); }
.onl-fbtn-search { padding:6px 16px; border-radius:8px; background:var(--onl-primary); color:#fff; border:none; font-size:13px; font-weight:600; cursor:pointer; }
.onl-fbtn-reset { padding:6px 12px; border-radius:8px; background:#f1f5f9; color:#64748b; border:1.5px solid #e2e8f0; font-size:13px; cursor:pointer; text-decoration:none; }

/* ── 콘텐츠 ── */
.onl-content-wrap { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1fr 260px; gap:24px; padding:24px 16px 60px; align-items:start; }
.onl-list-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.onl-list-total { font-size:13px; color:#64748b; }
.onl-sort-sel { padding:5px 10px; border:1.5px solid #e2e8f0; border-radius:8px; font-size:13px; background:#fff; }

/* ── 테이블형 목록 ── */
.onl-table { width:100%; border-collapse:collapse; }
.onl-table th { padding:10px 14px; background:#f8fafc; font-size:12.5px; font-weight:600; color:#64748b; text-align:left; border-bottom:2px solid #e2e8f0; }
.onl-table td { padding:10px 14px; border-bottom:1px solid #f1f5f9; font-size:13.5px; vertical-align:middle; }
.onl-table tr:hover td { background:#fdf4ff; }
.onl-tr-link { text-decoration:none; color:#1e293b; display:contents; }
.onl-type-badge { display:inline-block; padding:3px 9px; border-radius:6px; font-size:11px; font-weight:700; }
.onl-type-sell     { background:#dbeafe; color:#1d4ed8; }
.onl-type-buy      { background:#dcfce7; color:#166534; }
.onl-type-exchange { background:var(--onl-light); color:var(--onl-dark); }
.onl-cat-tag { display:inline-block; padding:2px 8px; background:#f1f5f9; border-radius:4px; font-size:11px; color:#64748b; }
.onl-price-cell { font-weight:700; font-size:14px; white-space:nowrap; }
.onl-sold-mark { color:#94a3b8; text-decoration:line-through; font-size:12px; }
.onl-title-cell { max-width:340px; }
.onl-title-text { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block; font-weight:600; color:#1e293b; }
.onl-title-text:hover { color:var(--onl-primary); }

/* ── 사이드바 ── */
.onl-sb-box { background:#fff; border:1.5px solid #f1f5f9; border-radius:14px; padding:18px; margin-bottom:16px; box-shadow:0 1px 4px rgba(0,0,0,.05); }
.onl-sb-title { font-size:14px; font-weight:700; color:#1e293b; margin-bottom:12px; }

/* ── 빈 상태 ── */
.onl-empty { text-align:center; padding:60px 24px; background:#f8fafc; border-radius:14px; color:#94a3b8; }
.onl-empty i { font-size:38px; display:block; margin-bottom:10px; }

/* ── 페이지네이션 ── */
.onl-pagination { display:flex; align-items:center; justify-content:center; gap:4px; margin-top:20px; }
.onl-pag-btn { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:8px; font-size:13px; text-decoration:none; font-weight:500; background:#fff; color:#475569; border:1.5px solid #e2e8f0; transition:all .15s; }
.onl-pag-btn:hover  { border-color:var(--onl-primary); color:var(--onl-primary); }
.onl-pag-btn.active { background:var(--onl-primary); color:#fff; border-color:var(--onl-primary); }
.onl-pag-btn.disabled { opacity:.4; pointer-events:none; }

@media (max-width:860px) { .onl-content-wrap{grid-template-columns:1fr;} .onl-sidebar{display:none;} }
@media (max-width:600px) {
  .onl-table thead { display:none; }
  .onl-table td { display:block; border:none; padding:4px 12px; }
  .onl-table tr { display:block; border-bottom:1.5px solid #f1f5f9; padding:8px 0; }
}

/* ═══ 상세 페이지 ═══ */
.onl-detail-wrap { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1fr 280px; gap:24px; padding:24px 16px 60px; align-items:start; }
.onl-detail-main {}
.onl-detail-gallery { border-radius:14px; overflow:hidden; background:#1e293b; }
.onl-gallery-main { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; cursor:zoom-in; }
.onl-gallery-blank { width:100%; aspect-ratio:16/9; display:flex; align-items:center; justify-content:center; font-size:60px; color:#4b5563; }
.onl-detail-h1 { font-size:20px; font-weight:800; color:#1e293b; margin:16px 0 10px; }
.onl-price-box { background:var(--onl-bg); border:1.5px solid #c4b5fd; border-radius:12px; padding:14px 18px; margin-bottom:16px; }
.onl-price-main { font-size:24px; font-weight:800; color:#1e293b; }
.onl-info-table { width:100%; border-collapse:collapse; margin-bottom:16px; }
.onl-info-table th,.onl-info-table td { padding:8px 12px; border-bottom:1px solid #f1f5f9; font-size:13.5px; text-align:left; }
.onl-info-table th { color:#64748b; font-weight:600; width:100px; background:#f8fafc; }
.onl-desc-box { background:#fff; border:1.5px solid #f1f5f9; border-radius:12px; padding:16px; margin-bottom:16px; }
.onl-desc-box h3 { font-size:15px; font-weight:700; margin:0 0 10px; }
.onl-desc-box p  { font-size:14px; line-height:1.8; color:#374151; white-space:pre-wrap; margin:0; }
.onl-nav-row { display:flex; gap:8px; margin-top:20px; }
.onl-nav-btn { flex:1; padding:10px 14px; border-radius:9px; font-size:13px; font-weight:600; border:1.5px solid #e2e8f0; background:#fff; color:#475569; cursor:pointer; text-decoration:none; text-align:center; transition:all .15s; }
.onl-nav-btn:hover { border-color:var(--onl-primary); color:var(--onl-primary); }
.onl-nav-btn.primary { background:var(--onl-primary); color:#fff; border-color:var(--onl-primary); }
.onl-nav-btn.primary:hover { background:var(--onl-dark); }
.onl-nav-btn.danger { border-color:#dc2626; color:#dc2626; }
.onl-nav-btn.danger:hover { background:#dc2626; color:#fff; }
.onl-contact-card { background:#fff; border:1.5px solid #f1f5f9; border-radius:14px; padding:18px; box-shadow:0 1px 4px rgba(0,0,0,.05); }
.onl-contact-card h3 { font-size:14px; font-weight:700; margin:0 0 12px; }
.onl-contact-phone { font-size:18px; font-weight:800; color:var(--onl-primary); margin-bottom:12px; }
.onl-call-btn { display:block; width:100%; padding:10px; border-radius:9px; background:var(--onl-primary); color:#fff; font-size:14px; font-weight:700; text-align:center; text-decoration:none; }
.onl-call-btn:hover { background:var(--onl-dark); }

@media (max-width:860px) { .onl-detail-wrap{grid-template-columns:1fr;} }

/* ═══ 등록 폼 ═══ */
.onl-write-wrap { max-width:800px; margin:0 auto; padding:28px 16px 60px; }
.onl-form-box { background:#fff; border:1.5px solid #f1f5f9; border-radius:14px; padding:22px; margin-bottom:18px; box-shadow:0 1px 4px rgba(0,0,0,.05); }
.onl-form-box h2 { font-size:15px; font-weight:700; color:#1e293b; margin:0 0 16px; padding-bottom:10px; border-bottom:1.5px solid #f1f5f9; }
.ow-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:12px; }
.ow-row-full { grid-template-columns:1fr; }
.ow-field { display:flex; flex-direction:column; gap:5px; }
.ow-label { font-size:13px; font-weight:600; color:#374151; }
.ow-label .req { color:#dc2626; margin-left:2px; }
.ow-input,.ow-select,.ow-textarea { padding:8px 12px; border:1.5px solid #e2e8f0; border-radius:8px; font-size:13.5px; color:#1e293b; background:#fff; }
.ow-input:focus,.ow-select:focus,.ow-textarea:focus { outline:none; border-color:var(--onl-primary); }
.ow-textarea { min-height:100px; resize:vertical; }
.ow-hint { font-size:11.5px; color:#94a3b8; }
.ow-radio-group { display:flex; flex-wrap:wrap; gap:10px; padding-top:8px; }
.ow-radio-item { display:inline-flex; align-items:center; gap:5px; font-size:13px; cursor:pointer; }
.ow-alert { background:#fef2f2; border:1.5px solid #fca5a5; border-radius:10px; padding:12px 16px; margin-bottom:14px; }
.ow-alert ul { margin:0; padding-left:18px; }
.ow-alert li { font-size:13px; color:#dc2626; line-height:1.7; }
.ow-submit-row { display:flex; gap:10px; justify-content:center; margin-top:6px; }
.ow-btn-submit { padding:12px 36px; border-radius:10px; background:var(--onl-primary); color:#fff; font-size:15px; font-weight:700; border:none; cursor:pointer; }
.ow-btn-submit:hover { background:var(--onl-dark); }
.ow-btn-cancel { padding:12px 24px; border-radius:10px; background:#f1f5f9; color:#475569; font-size:15px; font-weight:600; border:1.5px solid #e2e8f0; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; }
@media (max-width:600px) { .ow-row{grid-template-columns:1fr;} }
