* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:-apple-system,'Noto Sans KR','Malgun Gothic',sans-serif; background:#f5f6fa; color:#333; line-height:1.6; }

/* 로그인 */
.login-page { display:flex; align-items:center; justify-content:center; min-height:100vh; background:linear-gradient(135deg,#667eea,#764ba2); }
.login-box { background:#fff; padding:2.5rem; border-radius:12px; box-shadow:0 10px 40px rgba(0,0,0,.15); width:380px; text-align:center; }
.login-box h1 { font-size:1.2rem; margin-bottom:1.5rem; color:#444; line-height:1.5; }
.login-box form { display:flex; flex-direction:column; gap:.75rem; }
.login-box label { text-align:left; font-size:.85rem; color:#666; }
.login-box input { padding:.7rem; border:1px solid #ddd; border-radius:6px; font-size:.95rem; }
.login-box button { padding:.8rem; background:#667eea; color:#fff; border:none; border-radius:6px; cursor:pointer; font-size:1rem; }
.login-box button:hover { background:#5a6fd6; }

/* 탑바 */
.topbar { background:#2c3e50; color:#fff; padding:.7rem 0; position:sticky; top:0; z-index:100; }
.topbar-inner { max-width:1200px; margin:0 auto; padding:0 1rem; display:flex; justify-content:space-between; align-items:center; }
.topbar .logo { color:#fff; text-decoration:none; font-weight:700; font-size:1.1rem; }
.topbar-menu { display:flex; gap:1rem; align-items:center; }
.topbar .user-info { font-size:.85rem; opacity:.8; }
.topbar .btn-small { color:#fff; text-decoration:none; padding:.25rem .6rem; border:1px solid rgba(255,255,255,.3); border-radius:4px; font-size:.8rem; }
.topbar .btn-small:hover { background:rgba(255,255,255,.1); }

/* 컨테이너 */
.container { max-width:1200px; margin:1.5rem auto; padding:0 1rem; }

/* 대시보드 헤더 */
.dashboard-header { margin-bottom:1rem; }
.dashboard-header h2 { font-size:1.3rem; color:#2c3e50; margin-bottom:.5rem; }
.stats-bar { display:flex; gap:1rem; flex-wrap:wrap; }
.stat { padding:.35rem .8rem; border-radius:20px; font-size:.8rem; font-weight:600; }
.stat.total { background:#ecf0f1; color:#2c3e50; }
.stat.pending { background:#ffeaa7; color:#d68910; }
.stat.collected { background:#81ecec; color:#00b894; }
.stat.reviewed { background:#55efc4; color:#00b894; }
.stat.deployed { background:#74b9ff; color:#0984e3; }

/* 액션바 */
.action-bar { display:flex; justify-content:space-between; align-items:center; margin-bottom:1rem; flex-wrap:wrap; gap:.5rem; }
.search-form { display:flex; gap:.4rem; }
.search-form input, .search-form select { padding:.45rem .6rem; border:1px solid #ddd; border-radius:4px; font-size:.85rem; }
.actions { display:flex; gap:.4rem; }

/* 버튼 */
.btn { display:inline-block; padding:.5rem 1rem; background:#ecf0f1; color:#333; text-decoration:none; border-radius:5px; font-size:.85rem; border:none; cursor:pointer; }
.btn:hover { background:#dfe6e9; }
.btn-primary { background:#0984e3; color:#fff; }
.btn-primary:hover { background:#0773c5; }
.btn-small { display:inline-block; padding:.3rem .6rem; background:#dfe6e9; color:#333; text-decoration:none; border-radius:4px; font-size:.8rem; border:none; cursor:pointer; }
.btn-small:hover { background:#b2bec3; }
.btn-danger { background:#d63031; color:#fff; }
.btn-danger:hover { background:#c0392b; }

/* 회사 목록 */
.company-list { border:1px solid #e0e0e0; border-radius:8px; overflow:hidden; }
.company-row { display:flex; align-items:center; padding:.7rem 1rem; background:#fff; border-bottom:1px solid #eee; gap:.8rem; }
.company-row:last-child { border-bottom:none; }
.company-row:hover { background:#f8f9fa; }
.status-icon { font-size:1.1rem; width:1.5rem; text-align:center; }
.company-name { flex:1; font-weight:500; }
.company-status { font-size:.8rem; color:#888; width:5rem; }
.status-pending { border-left:3px solid #fdcb6e; }
.status-collected { border-left:3px solid #00cec9; }
.status-reviewed { border-left:3px solid #00b894; }
.status-deployed { border-left:3px solid #0984e3; }

/* 빈 상태 */
.empty { padding:3rem; text-align:center; color:#888; }

/* 페이지네이션 */
.pagination { display:flex; justify-content:center; gap:.3rem; margin-top:1rem; }
.page-num { padding:.3rem .65rem; background:#fff; border:1px solid #ddd; border-radius:4px; text-decoration:none; color:#333; font-size:.85rem; }
.page-num.active { background:#0984e3; color:#fff; border-color:#0984e3; }
.page-num:hover:not(.active) { background:#f0f0f0; }

/* 알림 */
.alert { padding:.7rem 1rem; border-radius:5px; margin-bottom:1rem; font-size:.9rem; }
.alert.success { background:#d4edda; color:#155724; border:1px solid #c3e6cb; }
.alert.error { background:#f8d7da; color:#721c24; border:1px solid #f5c6cb; }

/* 브레드크럼 */
.breadcrumb { margin-bottom:1rem; font-size:.9rem; }
.breadcrumb a { color:#0984e3; text-decoration:none; }
.breadcrumb a:hover { text-decoration:underline; }
.breadcrumb span { color:#888; margin-left:.5rem; }

/* 사업자등록번호 */
.bizno-bar { background:#fff; border:1px solid #e0e0e0; border-radius:8px; padding:.6rem 1rem; margin-bottom:.8rem; }
.bizno-form { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
.bizno-form label { font-size:.85rem; font-weight:600; color:#555; }
.bizno-input { width:160px; padding:.4rem .5rem; border:1px solid #ddd; border-radius:4px; font-size:.85rem; font-family:monospace; }
.bizno-input:focus { border-color:#0984e3; outline:none; }

/* 수집 출처 바 */
.sources-bar { background:#fff; border:1px solid #e0e0e0; border-radius:8px; padding:.6rem 1rem; margin-bottom:.8rem; display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; font-size:.85rem; }
.sources-bar strong { color:#555; }
.source-badge { display:inline-block; padding:.2rem .55rem; background:#e8f4fd; color:#0984e3; border-radius:4px; text-decoration:none; font-size:.8rem; font-weight:500; }
.source-badge:hover { background:#d0ebfa; }

/* 검증 헤더 */
.review-header { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; margin-bottom:1rem; background:#fff; border:1px solid #e0e0e0; border-radius:8px; padding:.8rem 1rem; }
.review-header h2 { font-size:1.15rem; color:#2c3e50; flex:1; min-width:150px; }
.review-header-actions { display:flex; gap:.4rem; }
.company-status-badge { display:inline-block; padding:.2rem .6rem; border-radius:4px; font-size:.78rem; font-weight:600; }
.status-pending { border-left:3px solid #fdcb6e; }
.status-collected { border-left:3px solid #00cec9; }
.status-reviewed { border-left:3px solid #00b894; }
.status-deployed { border-left:3px solid #0984e3; }
.status-pending .company-status-badge,.company-status-badge.status-pending { background:#ffeaa7; color:#d68910; }
.status-collected .company-status-badge,.company-status-badge.status-collected { background:#81ecec; color:#00b894; }
.status-reviewed .company-status-badge,.company-status-badge.status-reviewed { background:#55efc4; color:#00b894; }
.status-deployed .company-status-badge,.company-status-badge.status-deployed { background:#74b9ff; color:#0984e3; }

/* 검증 테이블 */
.review-table { width:100%; border-collapse:collapse; background:#fff; border:1px solid #e0e0e0; border-radius:8px; overflow:hidden; }
.review-table thead { background:#f8f9fa; }
.review-table th { padding:.5rem .6rem; font-size:.8rem; color:#666; border-bottom:2px solid #dee2e6; text-align:left; white-space:nowrap; }
.review-table td { padding:0; border-bottom:1px solid #eee; }
.review-table tr:last-child td { border-bottom:none; }
.review-table .col-field { width:80px; padding:.5rem .6rem; font-weight:600; font-size:.88rem; color:#2c3e50; vertical-align:middle; border-right:1px solid #eee; }
.row-decided td.col-field { color:#00b894; }
.review-table .col-value { padding:.35rem .6rem; }
.review-table .field-controls { display:flex; gap:.35rem; align-items:center; flex-wrap:wrap; }
.review-table .field-input { flex:1; min-width:140px; padding:.4rem .5rem; border:1px solid #ddd; border-radius:4px; font-size:.85rem; }
.review-table .field-input:focus { border-color:#0984e3; outline:none; box-shadow:0 0 0 2px rgba(9,132,227,.15); }
.review-table .field-select { padding:.4rem .4rem; border:1px solid #ddd; border-radius:4px; font-size:.82rem; }
.review-table .note-input { width:100px; padding:.4rem .5rem; border:1px solid #ddd; border-radius:4px; font-size:.82rem; }
.review-table .source-link { text-decoration:none; font-size:.85rem; opacity:.6; padding:0 .15rem; }
.review-table .source-link:hover { opacity:1; }
.review-hint { text-align:center; color:#888; font-size:.85rem; margin-top:.8rem; }

/* 수집 페이지 */
.collect-info { background:#fff; border:1px solid #e0e0e0; border-radius:8px; padding:1rem; margin-bottom:1rem; font-size:.9rem; }
.collect-list { background:#fff; border:1px solid #e0e0e0; border-radius:8px; padding:.5rem; margin-bottom:1rem; max-height:400px; overflow-y:auto; }
.collect-item { display:flex; align-items:center; gap:.5rem; padding:.4rem .6rem; cursor:pointer; }
.collect-item:hover { background:#f8f9fa; }
.collect-item input { margin:0; }

/* 관리자 페이지 */
.user-section { background:#fff; border:1px solid #e0e0e0; border-radius:8px; padding:1.2rem; margin-bottom:1rem; }
.user-section h3 { font-size:1rem; margin-bottom:.8rem; color:#2c3e50; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:.5rem; margin-bottom:.6rem; }
.form-grid input, .form-grid select { padding:.45rem .6rem; border:1px solid #ddd; border-radius:4px; font-size:.85rem; }
.user-table { width:100%; border-collapse:collapse; font-size:.88rem; }
.user-table th { background:#f8f9fa; text-align:left; padding:.5rem .6rem; border-bottom:2px solid #dee2e6; }
.user-table td { padding:.5rem .6rem; border-bottom:1px solid #eee; }

/* 추가 필드 입력 */
.add-field-input { width:120px; padding:.25rem .4rem; border:1px solid #ddd; border-radius:3px; font-size:.8rem; vertical-align:middle; }
.field-hints { display:flex; gap:.4rem; flex-wrap:wrap; margin-top:.25rem; font-size:.78rem; color:#888; }
.hint-item { background:#f0f0f0; padding:.1rem .4rem; border-radius:3px; }

/* 원문 뷰어 */
.raw-section { background:#fff; border:1px solid #e0e0e0; border-radius:8px; margin-top:1rem; overflow:hidden; }
.raw-toggle { padding:.7rem 1rem; cursor:pointer; font-size:.9rem; color:#2c3e50; user-select:none; display:flex; align-items:center; gap:.5rem; }
.raw-toggle:hover { background:#f8f9fa; }
.raw-arrow { font-size:.75rem; color:#888; }
.raw-contents { border-top:1px solid #eee; padding:.5rem; }
.raw-source { margin-bottom:.5rem; }
.raw-source h4 { font-size:.85rem; color:#555; padding:.3rem .5rem; background:#f8f9fa; border-radius:4px; display:flex; align-items:center; gap:.4rem; }
.raw-text { background:#fafafa; border:1px solid #eee; border-radius:4px; padding:.6rem; font-size:.78rem; line-height:1.5; max-height:300px; overflow-y:auto; white-space:pre-wrap; word-break:break-all; color:#555; margin-top:.3rem; }
.review-hint { text-align:center; color:#888; font-size:.85rem; margin-top:.8rem; }

/* 반응형 */
@media (max-width:768px) {
  .action-bar { flex-direction:column; align-items:stretch; }
  .search-form { flex-wrap:wrap; }
  .stats-bar { gap:.5rem; }
  .stat { font-size:.75rem; }
}
