/* ============================================================
   B.A.I.S (Barun AI Integrated System) — 관리자 업무센터
   공개 홈페이지(barun8989.com)와 동일한 베이지·올리브그린 톤 사용
============================================================ */

:root{
  --olive:#5f6d49;
  --olive-deep:#4a5639;
  --olive-soft:#8b946f;
  --ivory:#f6f3ea;
  --paper:#fbf9f2;
  --gold-line:#c7b78a;
  --brown:#7a6a55;
  --ink:#41453a;
  --muted:#8b8878;
  --line:#e6e1d2;

  --warn-bg:#fbeceb;
  --warn-border:#e0a79a;
  --warn-text:#8a3a2a;
}

*{margin:0;padding:0;box-sizing:border-box}
html,body{width:100%;overflow-x:hidden}
body{
  font-family:'Noto Sans KR',sans-serif;
  background:#e9e5d9;
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit}

/* ---------- 보안 경고 배너 ---------- */
.warn-banner{
  background:var(--warn-bg);color:var(--warn-text);
  border-bottom:1px solid var(--warn-border);
  font-size:13px;line-height:1.7;
  padding:10px 16px;text-align:center;
}
.warn-banner b{font-weight:800}

/* ---------- 전체 레이아웃 ---------- */
.app{display:flex;flex-direction:column;min-height:100vh}
.body-row{display:flex;flex:1;min-height:0}

/* ---------- 상단바 ---------- */
.topbar{
  display:flex;align-items:center;gap:14px;
  background:var(--paper);border-bottom:1px solid var(--gold-line);
  padding:12px 20px;position:sticky;top:0;z-index:40;
}
.hamburger{
  display:none;flex-direction:column;justify-content:center;gap:4px;
  width:34px;height:34px;background:none;border:1px solid var(--olive-soft);
  border-radius:8px;
}
.hamburger span{display:block;width:16px;height:2px;background:var(--olive-deep);margin:0 auto}
.brand{display:flex;flex-direction:column;line-height:1.2}
.brand-main{
  font-family:'Noto Serif KR',serif;font-weight:900;font-size:19px;
  color:var(--olive-deep);letter-spacing:.03em;
}
.brand-sub{font-size:10.5px;color:var(--muted);letter-spacing:.03em}
.topbar-right{margin-left:auto}
.topbar-user{
  font-size:13px;font-weight:700;color:var(--olive-deep);
  background:var(--ivory);border:1px solid var(--line);
  border-radius:20px;padding:6px 14px;
}

/* ---------- 사이드바 ---------- */
.sidebar{
  width:220px;flex:0 0 220px;
  background:var(--olive-deep);color:var(--paper);
  display:flex;flex-direction:column;
  padding:20px 0;
}
.sidebar-head{padding:0 20px 18px;border-bottom:1px solid rgba(250,248,236,.15);margin-bottom:12px;position:relative}
.sidebar-title{font-family:'Noto Serif KR',serif;font-weight:900;font-size:16px}
.sidebar-desc{font-size:11.5px;color:#cfcbb4;margin-top:2px}
.sidebar-close{
  display:none;position:absolute;top:-4px;right:0;
  width:30px;height:30px;border:none;border-radius:50%;
  background:rgba(255,255,255,.12);color:var(--paper);font-size:16px;
}
.menu{list-style:none}
.menu-item{
  display:block;width:100%;text-align:left;background:none;border:none;
  color:#e5e2d0;font-size:14.5px;font-weight:600;
  padding:12px 20px;border-left:3px solid transparent;
}
.menu-item:hover{background:rgba(255,255,255,.06)}
.menu-item.active{
  background:rgba(255,255,255,.1);
  border-left:3px solid var(--gold-line);
  color:#fff;font-weight:800;
}
.sidebar-foot{
  margin-top:auto;padding:14px 20px 0;font-size:10.5px;color:#a9a690;
}
.sidebar-overlay{
  display:none;position:fixed;inset:0;background:rgba(26,30,20,.5);z-index:45;
}

/* ---------- 메인 콘텐츠 ---------- */
.content{
  flex:1;min-width:0;padding:26px 28px 60px;
  background:var(--ivory);
}
.panel{display:none}
.panel.active{display:block}
.panel-head{margin-bottom:22px}
.panel-head h1{
  font-family:'Noto Serif KR',serif;font-weight:900;font-size:22px;
  color:var(--olive-deep);
}
.panel-sub{font-size:13px;color:var(--muted);margin-top:4px}

.empty-note{
  margin-top:18px;font-size:12px;color:var(--muted);
  border-top:1px dashed var(--line);padding-top:12px;line-height:1.7;
}

/* ---------- 대시보드 ---------- */
.stat-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px;
}
.stat-card{
  background:var(--paper);border:1px solid var(--line);
  border-left:4px solid var(--gold-line);border-radius:10px;
  padding:18px 18px 16px;
}
.stat-label{font-size:12.5px;color:var(--olive);font-weight:700;margin-bottom:8px}
.stat-value{font-family:'Noto Serif KR',serif;font-weight:900;font-size:28px;color:var(--olive-deep)}
.stat-value.pending{font-size:15px;color:var(--brown)}
.stat-note{font-size:12px;color:var(--muted);margin-top:2px}

/* ---------- 대시보드 8칸 클릭형 카드 ---------- */
.stat-grid-8{grid-template-columns:repeat(4,1fr)}
button.stat-card{
  all:unset;
  box-sizing:border-box;
  display:block;width:100%;
  background:var(--paper);border:1px solid var(--line);
  border-left:4px solid var(--gold-line);border-radius:10px;
  padding:16px 16px 14px;
}
.stat-clickable{cursor:pointer;transition:transform .12s ease, box-shadow .12s ease}
.stat-clickable:hover{
  border-left-color:var(--olive);
  box-shadow:0 3px 10px rgba(74,86,57,.14);
  transform:translateY(-1px);
}
.stat-clickable:active{transform:translateY(0)}

/* ---------- 고객관리: 오늘 필터 배너 ---------- */
.cust-today-filter{
  display:none;align-items:center;justify-content:space-between;
  background:#eef0e1;border:1px solid var(--olive-soft);border-radius:8px;
  padding:8px 14px;margin-bottom:12px;font-size:12.5px;color:var(--olive-deep);font-weight:700;
}
.cust-today-filter.show{display:flex}
.cust-today-filter button{
  background:none;border:none;color:var(--olive-deep);font-weight:700;
  font-size:12px;text-decoration:underline;cursor:pointer;font-family:inherit;
}

@media (max-width: 860px){
  .stat-grid-8{grid-template-columns:1fr 1fr}
}

/* ---------- 필터 탭 ---------- */
.pill-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.pill-tabs-sub{margin-top:-6px}
.pill{
  background:var(--paper);border:1px solid var(--line);
  border-radius:20px;padding:8px 16px;font-size:13px;font-weight:700;
  color:var(--ink);
}
.pill.active{background:var(--olive);border-color:var(--olive);color:var(--paper)}
.pill-sm{padding:6px 13px;font-size:12px}

/* ---------- 테이블 (고객관리) ---------- */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--paper)}
.data-table{width:100%;border-collapse:collapse;font-size:13px;min-width:520px}
.data-table th{
  text-align:left;background:var(--ivory);color:var(--olive-deep);
  font-size:12px;font-weight:700;padding:10px 14px;border-bottom:1px solid var(--line);
  white-space:nowrap;
}
.data-table td{padding:11px 14px;border-bottom:1px solid var(--line)}
.example-row:last-child td{border-bottom:none}
.ex-badge{
  display:inline-block;font-size:10px;font-weight:700;color:var(--brown);
  background:#f1ece0;border-radius:10px;padding:1px 7px;margin-left:5px;
}
.badge{display:inline-block;font-size:11.5px;font-weight:700;border-radius:20px;padding:3px 10px}
.badge-new{background:#eef0e1;color:var(--olive)}
.badge-progress{background:#f5ecd8;color:#8a6a2a}
.badge-done{background:#e6efe0;color:#3d6b3d}
.badge-hold{background:#efe9e9;color:#8b7d7d}

/* ---------- 고객관리 실데이터 연동 ---------- */
.cust-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:12px}
.btn-refresh{
  background:var(--paper);border:1px solid var(--line);border-radius:20px;
  padding:8px 16px;font-size:12.5px;font-weight:700;color:var(--olive-deep);
  flex:0 0 auto;
}
.btn-refresh:disabled{opacity:.5;cursor:wait}
.cust-status-msg{
  font-size:12.5px;color:var(--muted);margin-bottom:10px;
  padding:8px 12px;border:1px dashed var(--line);border-radius:8px;
  display:none;
}
.cust-status-msg.show{display:block}
.cust-status-msg.error{color:#a9432f;border-color:#e8c3bc;background:#fbeceb}

/* ---------- 카드 그리드 (매물관리) ---------- */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.mini-card{
  background:var(--paper);border:1px solid var(--line);border-radius:10px;
  padding:16px;position:relative;
}
.mini-card h3{
  font-family:'Noto Serif KR',serif;font-size:14.5px;color:var(--olive-deep);
  margin:8px 0 6px;line-height:1.4;
}
.mini-price{font-size:13px;color:var(--brown);font-weight:700;margin-bottom:8px}
.mini-status{
  display:inline-block;font-size:11.5px;font-weight:700;border-radius:20px;padding:3px 10px;
}
.status-new{background:#eef0e1;color:var(--olive)}
.status-progress{background:#f5ecd8;color:#8a6a2a}
.status-done{background:#e6efe0;color:#3d6b3d}

/* ---------- 공부조회 ---------- */
.search-row{display:flex;gap:10px;margin-bottom:20px}
.report-input{
  flex:1;padding:12px 14px;border:1px solid var(--line);border-radius:8px;
  background:var(--paper);font-size:14px;
}
.btn-primary{
  background:var(--olive);color:var(--paper);border:none;
  border-radius:8px;padding:12px 22px;font-size:14px;font-weight:700;
}
.btn-full{width:100%}
.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.report-card{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.report-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.report-card-head b{font-size:13.5px;color:var(--olive-deep)}
.icon-btn{background:none;border:none;font-size:16px}
.report-empty{
  font-size:12.5px;color:var(--muted);text-align:center;
  padding:24px 6px;border:1px dashed var(--line);border-radius:8px;
}

/* ---------- 공부조회 — 상태 배지 ---------- */
.rp-status{
  display:inline-block;font-size:11px;font-weight:700;border-radius:20px;
  padding:3px 10px;margin-left:8px;
}
.rp-status.before{background:#efe9e9;color:#8b7d7d}
.rp-status.pending{background:#e6eef5;color:#2f6a99}
.rp-status.done{background:#e6efe0;color:#3d6b3d}
.rp-status.check{background:#f5ecd8;color:#8a6a2a}

/* ---------- 공부조회 — 등기부등본 전용 카드 ---------- */
.rp-registry-note{
  background:#fbeceb;border:1px solid #e8c3bc;border-radius:8px;
  padding:12px 14px;font-size:12px;color:#a9432f;line-height:1.6;margin-bottom:10px;
}
.rp-registry-btn{
  display:block;width:100%;text-align:center;text-decoration:none;
  background:var(--olive);color:var(--paper);border-radius:8px;
  padding:10px;font-size:13px;font-weight:700;
}

/* ---------- 공부조회 — 로그인 게이트 ---------- */
.rp-login-screen{
  height:100vh;width:100%;display:flex;align-items:center;justify-content:center;
  padding:20px;box-sizing:border-box;background:var(--ivory);overflow:hidden;
}
.rp-login-box{
  background:var(--paper);border:1px solid var(--gold-line);border-radius:14px;
  padding:36px 28px;max-width:360px;width:100%;text-align:center;
}
.rp-login-box .rp-icon{font-size:34px;margin-bottom:12px}
.rp-login-box h2{font-family:'Noto Serif KR',serif;font-size:18px;color:var(--olive-deep);margin-bottom:10px}
.rp-login-box p{font-size:12.5px;color:var(--muted);line-height:1.7;margin-bottom:22px}
.rp-login-box button{
  width:100%;background:var(--olive);color:var(--paper);border:none;
  border-radius:8px;padding:13px;font-size:14.5px;font-weight:700;cursor:pointer;
}
.rp-login-warn{
  margin-top:16px;font-size:11px;color:#a9432f;line-height:1.7;
  border-top:1px dashed var(--line);padding-top:12px;
}

/* ---------- 모달 공통 (post-overlay / post-modal / close-btn)
   ⚠️ 이 클래스들이 기존에 style.css에 정의되어 있지 않아서,
   로그인 전에도 PDF 모달이 스타일 없이 그대로 노출되던 버그의
   직접적인 원인이었습니다. 기본값을 반드시 숨김 처리합니다. ---------- */
.post-overlay{
  display:none;position:fixed;inset:0;z-index:200;
  background:rgba(65,69,58,.55);
  align-items:center;justify-content:center;padding:20px;
}
.post-overlay.open{display:flex}
.post-modal{
  position:relative;background:var(--paper);border-radius:16px;
  max-width:440px;width:100%;max-height:88vh;overflow-y:auto;
  padding:30px 26px;box-shadow:0 16px 48px rgba(0,0,0,.28);
}
.post-modal h2{
  font-family:'Noto Serif KR',serif;font-weight:900;font-size:18px;
  color:var(--olive-deep);text-align:center;margin-bottom:10px;
}
.post-modal .post-intro{font-size:12.5px;color:var(--muted);text-align:center;line-height:1.7;margin-bottom:16px}
.close-btn{
  position:absolute;top:14px;right:14px;background:none;border:none;
  font-size:18px;color:var(--muted);cursor:pointer;line-height:1;padding:4px;
}

/* ---------- 로그아웃 버튼 ---------- */
.rp-logout-btn{
  margin-left:auto;background:var(--paper);border:1px solid var(--line);
  border-radius:20px;padding:7px 16px;font-size:12px;font-weight:700;
  color:var(--brown);cursor:pointer;
}

/* ---------- 공부조회 — 폼 확장 ---------- */
.rp-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.rp-btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.rp-btn-row button{
  flex:1;min-width:110px;border:none;border-radius:8px;padding:12px;
  font-size:13.5px;font-weight:700;cursor:pointer;
}
.rp-btn-row .primary{background:var(--olive);color:var(--paper)}
.rp-btn-row .ghost{background:var(--paper);color:var(--olive-deep);border:1px solid var(--line)!important}
.rp-btn-row .reset{background:#efe9e9;color:#7a6f6f}

/* ---------- 공부조회 — 조회 이력 ---------- */
.rp-history{margin-top:34px}
.rp-history h3{font-family:'Noto Serif KR',serif;font-size:16px;color:var(--olive-deep);margin-bottom:12px}
.rp-history-item{
  background:var(--paper);border:1px solid var(--line);border-radius:10px;
  padding:14px 16px;margin-bottom:10px;
}
.rp-history-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.rp-history-addr{font-size:13.5px;font-weight:700;color:var(--ink)}
.rp-history-meta{font-size:11.5px;color:var(--muted);margin-top:3px;line-height:1.6}
.rp-history-actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.rp-history-actions button{
  background:var(--ivory);border:1px solid var(--line);border-radius:20px;
  padding:5px 12px;font-size:11.5px;color:var(--ink);cursor:pointer;
}
.rp-history-actions button.fav.active{background:#f5ecd8;color:#8a6a2a;border-color:#e0c98a}
.rp-history-empty{font-size:12.5px;color:var(--muted);text-align:center;padding:20px 0}

/* ---------- 공부조회 — 하단 액션 ---------- */
.rp-bottom-actions{
  display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:24px 0;
}
.rp-bottom-actions button{
  background:var(--paper);border:1px solid var(--line);border-radius:8px;
  padding:12px 4px;font-size:12px;font-weight:700;color:var(--olive-deep);cursor:pointer;
}
.rp-msg-box{
  display:none;background:#fbeceb;border:1px solid #e8c3bc;border-radius:8px;
  padding:12px 14px;font-size:12.5px;color:#a9432f;margin-bottom:16px;
}
.rp-msg-box.show{display:block}

/* ---------- 공부조회 — 섹션 제목 ---------- */
.rp-section-title{
  font-family:'Noto Serif KR',serif;font-weight:800;font-size:14.5px;
  color:var(--olive-deep);margin:22px 0 12px;
  display:flex;align-items:center;gap:8px;
}

/* ---------- 공부조회 — 프리미엄 결과 카드 ---------- */
.rp-result-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.rp-card{
  background:linear-gradient(180deg,var(--paper) 0%,#fdfcf8 100%);
  border:1px solid var(--line);border-radius:12px;
  padding:16px 14px;display:flex;flex-direction:column;gap:10px;
  box-shadow:0 2px 8px rgba(74,86,57,.05);
  transition:box-shadow .15s ease, border-color .15s ease;
}
.rp-card:hover{border-color:var(--gold-line);box-shadow:0 4px 14px rgba(74,86,57,.1)}
.rp-card-icon{
  width:38px;height:38px;border-radius:10px;
  background:var(--ivory);border:1px solid var(--gold-line);
  display:flex;align-items:center;justify-content:center;font-size:19px;
}
.rp-card-body{flex:1}
.rp-card-title{
  font-size:13.5px;font-weight:800;color:var(--olive-deep);
  display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:5px;
}
.rp-card-desc{font-size:11.5px;color:var(--muted);line-height:1.6}
.rp-view-btn{
  align-self:flex-start;background:var(--olive);color:var(--paper);
  border:none;border-radius:7px;padding:8px 14px;font-size:12px;font-weight:700;
  cursor:pointer;
}
.rp-card-registry{background:linear-gradient(180deg,#fdf7f2 0%,#fbf1e8 100%);border-color:#e6cdb0}
.rp-card-registry .rp-card-icon{background:#fbeceb;border-color:#e0a79a}

/* ---------- 공부조회 — 하단 액션 5버튼 ---------- */
.rp-bottom-actions-5{grid-template-columns:repeat(5,1fr)}

/* ---------- 공부조회 — 탭형 조회이력 ---------- */
.rp-hist-tabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.rp-hist-tab{
  background:var(--paper);border:1px solid var(--line);border-radius:20px;
  padding:8px 16px;font-size:12.5px;font-weight:700;color:var(--ink);cursor:pointer;
}
.rp-hist-tab.active{background:var(--olive);color:var(--paper);border-color:var(--olive)}
.rp-hist-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.rp-hist-card{
  background:var(--paper);border:1px solid var(--line);border-radius:12px;
  padding:14px 15px;box-shadow:0 2px 8px rgba(74,86,57,.05);
}
.rp-hist-card.is-fav{border-color:#e0c98a;background:linear-gradient(180deg,#fdf8ec 0%,var(--paper) 100%)}
.rp-hist-card .rp-history-addr{font-size:13px}
.rp-hist-card .rp-history-meta{font-size:11px}

/* ---------- B.A.I.S 원클릭 조회 (대표 버튼) ---------- */
.rp-oneclick-btn{
  display:flex;flex-direction:column;align-items:center;gap:4px;
  width:100%;margin-top:16px;
  background:linear-gradient(135deg,var(--olive) 0%,var(--olive-deep) 100%);
  color:var(--paper);border:none;border-radius:14px;
  padding:20px 16px;cursor:pointer;
  box-shadow:0 6px 20px rgba(74,86,57,.28);
  font-family:'Noto Serif KR',serif;font-weight:900;font-size:18px;
  transition:transform .12s ease, box-shadow .12s ease;
}
.rp-oneclick-btn:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(74,86,57,.35)}
.rp-oneclick-btn:disabled{opacity:.7;cursor:wait;transform:none}
.rp-oneclick-btn span{
  font-family:'Noto Sans KR',sans-serif;font-weight:500;font-size:11.5px;color:#dfe3d0;
}

/* ---------- 상태 배지 — 조회중 애니메이션 ---------- */
.rp-status.scanning{background:#fdf2d8;color:#a3791f;animation:rpPulse 1s ease-in-out infinite}
@keyframes rpPulse{
  0%,100%{opacity:1}
  50%{opacity:.45}
}

/* ---------- B.A.I.S AI 분석 카드 ---------- */
.rp-ai-card{
  margin-top:22px;background:linear-gradient(180deg,#f3f0e4 0%,var(--paper) 100%);
  border:1px solid var(--gold-line);border-radius:14px;padding:18px 18px 16px;
}
.rp-ai-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.rp-ai-title{font-family:'Noto Serif KR',serif;font-weight:900;font-size:15px;color:var(--olive-deep)}
.rp-ai-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:12px}
.rp-ai-item{
  background:#fff;border:1px solid var(--line);border-radius:8px;
  padding:9px 10px;font-size:11.5px;color:var(--ink);font-weight:600;text-align:center;
}
.rp-ai-desc{font-size:12px;color:var(--muted);text-align:center;line-height:1.6}

/* ---------- 하단 액션 6버튼 + 대표버튼(PDF) ---------- */
.rp-bottom-actions-6{grid-template-columns:repeat(6,1fr)}
.rp-primary-action{background:var(--olive)!important;color:var(--paper)!important;border-color:var(--olive)!important}

/* ---------- A4 보고서 / PDF 출력 미리보기 ---------- */
.rp-a4-sheet{
  margin-top:14px;background:#fff;border:1px solid var(--line);border-radius:6px;
  aspect-ratio:1/1.414;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:24px;box-shadow:0 2px 10px rgba(0,0,0,.06);text-align:center;
}
/* [v1.9] 실데이터로 채워진 보고서는 중앙정렬 placeholder 박스가 아니라
   위에서부터 흐르는 일반 문서 형태로 바뀝니다 */
.rp-a4-sheet.filled{
  aspect-ratio:auto;display:block;text-align:left;justify-content:flex-start;
  align-items:stretch;padding:22px 20px;
}
.rp-a4-sheet.filled .rp-a4-section{border-bottom:1px solid var(--line);padding-bottom:10px}
.rp-a4-sheet.filled .rp-a4-section:last-child{border-bottom:none}
.rp-a4-row{display:flex;justify-content:space-between;gap:10px;font-size:11.5px;padding:2px 0;color:var(--ink)}
.rp-a4-row b{color:var(--muted);font-weight:600;flex:0 0 auto}
.rp-a4-row span{text-align:right}
.rp-a4-list{font-size:11.5px;line-height:1.7;color:var(--ink);white-space:pre-line}
.rp-a4-checklist-item{font-size:11.5px;padding:2px 0}
.rp-a4-badge{display:inline-block;font-size:10.5px;font-weight:800;padding:2px 8px;border-radius:6px;margin-bottom:6px}
.rp-a4-logo{font-family:'Noto Serif KR',serif;font-weight:900;color:var(--olive-deep);font-size:15px;margin-bottom:40px}
.rp-a4-msg{font-size:15px;font-weight:700;color:var(--muted);margin-bottom:10px}
.rp-a4-note{font-size:11px;color:var(--muted);line-height:1.7}

/* ---------- 주소검색 결과 드롭다운 ---------- */
.rp-search-results{
  display:none;margin-top:6px;background:#fff;border:1px solid var(--gold-line);
  border-radius:8px;max-height:220px;overflow-y:auto;
  box-shadow:0 4px 14px rgba(74,86,57,.12);
}
.rp-search-results.show{display:block}
.rp-search-item{
  padding:10px 14px;border-bottom:1px dashed var(--line);cursor:pointer;font-size:12.5px;
}
.rp-search-item:last-child{border-bottom:none}
.rp-search-item:hover{background:var(--ivory)}
.rp-search-item b{display:block;color:var(--olive-deep);font-size:13px;margin-bottom:2px}
.rp-search-item span{color:var(--muted);font-size:11px}
.rp-search-empty{padding:14px;text-align:center;font-size:12px;color:var(--muted)}

/* ---------- 대상 위치 및 연속지적도 (지도 카드) ---------- */
.rp-map-card{
  margin-top:22px;background:var(--paper);border:1px solid var(--gold-line);
  border-radius:14px;padding:18px;box-shadow:0 4px 16px rgba(74,86,57,.08);
}
.rp-map-head{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;
  margin-bottom:12px;
}
.rp-map-title{font-family:'Noto Serif KR',serif;font-weight:900;font-size:15px;color:var(--olive-deep)}
.rp-map-status{display:flex;flex-wrap:wrap;gap:6px}
.rp-map-status .rp-status{margin-left:0;font-size:10.5px}
.rp-map-toolbar{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.rp-map-btn{
  background:#fff;border:1px solid var(--line);border-radius:20px;
  padding:6px 13px;font-size:11.5px;font-weight:700;color:var(--ink);cursor:pointer;
}
.rp-map-btn.active{background:var(--olive);color:var(--paper);border-color:var(--olive)}
.rp-map{
  width:100%;height:520px;border-radius:10px;border:1px solid var(--line);
  background:#e9e5d9;
}
.rp-map-info{
  margin-top:10px;font-size:11.5px;color:var(--muted);line-height:1.7;
  border-top:1px dashed var(--line);padding-top:10px;
}
.rp-map-popup{
  background:#fff;border:1px solid var(--gold-line);border-radius:8px;
  padding:10px 12px;font-size:11.5px;color:var(--ink);box-shadow:0 3px 10px rgba(0,0,0,.15);
  max-width:220px;line-height:1.7;
}

@media (max-width:640px){
  .rp-form-grid{grid-template-columns:1fr}
  .rp-bottom-actions{grid-template-columns:1fr 1fr}
  .rp-bottom-actions-5{grid-template-columns:1fr 1fr}
  .rp-bottom-actions-6{grid-template-columns:1fr 1fr}
  .rp-result-grid{grid-template-columns:1fr}
  .rp-hist-grid{grid-template-columns:1fr}
  .rp-ai-grid{grid-template-columns:1fr 1fr}
  .rp-oneclick-btn{font-size:16px}
  .rp-map{height:380px}
}

/* ============================================================
   B.A.I.S 스마트조회 v3 — 실무형 레이아웃
============================================================ */

/* ---------- 전체 레이아웃 (데스크톱 2열: 본문 + 사이드) ---------- */
.rp-layout{display:grid;grid-template-columns:1fr 300px;gap:20px;align-items:start}
.rp-main-col{min-width:0}

/* ---------- 상태 배지 — 6단계 ---------- */
.rp-status.empty{background:#efe9e9;color:#8b7d7d}
.rp-status.pending{background:#e6eef5;color:#2f6a99}

/* ---------- 주소검색 카드 ---------- */
/* ---------- 건축물 동 조회 (v1.3) ---------- */
.rp-dong-card{
  background:#fff;border:1px solid var(--gold-line);border-radius:10px;
  padding:14px 16px;margin-bottom:14px;
}
.rp-dong-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.rp-dong-head b{font-size:13px;color:var(--olive-deep)}
.rp-dong-card select{
  width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:8px;
  font-size:14px;background:#fff;color:var(--ink);
}
.rp-dong-note{font-size:11px;color:var(--muted);margin-top:6px;line-height:1.6}

/* ---------- 스마트조회 진행상황 ---------- */
.rp-progress-card{
  margin-top:14px;background:var(--ivory);border:1px solid var(--line);
  border-radius:10px;padding:14px 16px;
}
.rp-progress-list{list-style:none;display:grid;gap:8px}
.rp-progress-list li{
  font-size:12.5px;color:var(--muted);padding-left:24px;position:relative;
}
.rp-progress-list li::before{
  content:"⬜";position:absolute;left:0;top:0;
}
.rp-progress-list li.doing{color:var(--olive-deep);font-weight:700}
.rp-progress-list li.doing::before{content:"⏳"}
.rp-progress-list li.done{color:#3d6b3d;font-weight:700}
.rp-progress-list li.done::before{content:"✅"}

.rp-address-card{
  background:var(--paper);border:1px solid var(--gold-line);border-radius:14px;
  padding:20px;box-shadow:0 4px 16px rgba(74,86,57,.08);
}
.rp-search-open-btn{
  width:100%;background:var(--olive);color:var(--paper);border:none;
  border-radius:10px;padding:15px;font-size:15.5px;font-weight:800;cursor:pointer;
  margin-bottom:14px;
}
.rp-selected-addr{
  background:#fff;border:1px solid var(--line);border-radius:10px;
  padding:14px 16px;margin-bottom:14px;
}
.rp-selected-label{font-size:11.5px;font-weight:700;color:var(--brown);margin-bottom:8px}
.rp-addr-row{
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:6px 0;
}
.rp-addr-row b{display:block;font-size:11px;color:var(--olive);margin-bottom:2px}
.rp-addr-row span{font-size:13.5px;color:var(--ink);font-weight:600}
.rp-copy-btn{
  flex:0 0 auto;background:var(--ivory);border:1px solid var(--line);border-radius:16px;
  padding:5px 12px;font-size:11px;font-weight:700;color:var(--olive-deep);cursor:pointer;
}
.rp-selected-empty{
  font-size:12px;color:var(--muted);text-align:center;
  padding:14px;border:1px dashed var(--line);border-radius:10px;margin-bottom:14px;
}

/* ---------- 주소검색 모달 ---------- */
.rp-addr-search-row{display:flex;gap:8px;margin-bottom:12px}
.rp-addr-search-row input{
  flex:1;padding:11px 13px;border:1px solid var(--line);border-radius:8px;font-size:14px;
}
.rp-addr-search-row button{
  background:var(--olive);color:var(--paper);border:none;border-radius:8px;
  padding:0 18px;font-size:13.5px;font-weight:700;cursor:pointer;
}

/* ---------- 결과 카드 2열 ---------- */
.rp-result-grid2{margin-top:22px;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.rp-card2{
  background:var(--paper);border:1px solid var(--line);border-radius:12px;
  padding:16px;box-shadow:0 2px 8px rgba(74,86,57,.05);
  min-height:180px;
}
.rp-card2-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.rp-card2-title{font-family:'Noto Serif KR',serif;font-weight:800;font-size:14px;color:var(--olive-deep)}
.rp-card2-body{display:grid;gap:7px}
.rp-field{display:flex;justify-content:space-between;gap:8px;font-size:12px;border-bottom:1px dashed var(--line);padding-bottom:6px}
.rp-field b{color:var(--brown);font-weight:700;flex:0 0 auto}
.rp-field span{color:var(--muted);text-align:right}
.rp-card2-ai-slot{display:none}

.rp-deal-tabs{display:flex;gap:6px;margin-bottom:10px}
.rp-deal-tab{
  background:#fff;border:1px solid var(--line);border-radius:16px;
  padding:4px 12px;font-size:11px;font-weight:700;color:var(--ink);cursor:pointer;
}
.rp-deal-tab.active{background:var(--olive);color:var(--paper);border-color:var(--olive)}

/* ---------- AI 분석 (넓은 카드) ---------- */
.rp-ai-card2{
  margin-top:18px;background:linear-gradient(180deg,#f3f0e4 0%,var(--paper) 100%);
  border:1px solid var(--gold-line);border-radius:14px;padding:20px;
}
.rp-ai-body{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin:14px 0}
.rp-ai-note{font-size:11px;color:var(--muted);text-align:center;line-height:1.7;border-top:1px dashed var(--line);padding-top:10px}

/* ---------- 사이드 패널 (조회이력·즐겨찾기) ---------- */
.rp-side-col{position:sticky;top:16px}
.rp-side-toggle{
  width:100%;background:var(--olive-deep);color:var(--paper);border:none;
  border-radius:10px;padding:13px;font-size:13px;font-weight:700;cursor:pointer;
  margin-bottom:10px;display:flex;justify-content:space-between;align-items:center;
}
.rp-hist-grid-side{display:grid;grid-template-columns:1fr;gap:10px}

@media (max-width:900px){
  .rp-layout{grid-template-columns:1fr}
  .rp-side-col{position:static}
}
@media (max-width:640px){
  .rp-result-grid2{grid-template-columns:1fr}
  .rp-ai-body{grid-template-columns:1fr}
}

/* ============================================================
   B.A.I.S SMART v1.2 — ERP형 실무 업그레이드
============================================================ */

/* ---------- 로그인 화면: 중앙 카드만, 배경은 은은하게 ---------- */
.rp-login-box{box-shadow:0 10px 34px rgba(74,86,57,.16)}

/* ---------- 상단 고정 검색바 ---------- */
.rp-sticky-search{
  position:sticky;top:0;z-index:35;
  background:var(--paper);border:1px solid var(--gold-line);border-radius:0 0 14px 14px;
  padding:14px 16px 10px;margin:0 -4px 16px;
  box-shadow:0 6px 18px rgba(74,86,57,.1);
}
.rp-sticky-search-row{display:flex;gap:8px}
.rp-sticky-search-row input{
  flex:1;padding:12px 14px;border:1px solid var(--line);border-radius:9px;
  font-size:14.5px;background:#fff;
}
.rp-sticky-search-row button{
  background:var(--olive);color:var(--paper);border:none;border-radius:9px;
  padding:0 20px;font-size:14px;font-weight:700;cursor:pointer;
}
/* ---------- 도로명/지번 검색 모드 토글 ---------- */
.rp-addr-mode-tabs{display:flex;gap:6px;margin-bottom:8px}
.rp-addr-mode-tab{
  flex:1;background:#fff;border:1px solid var(--line);border-radius:8px;
  padding:9px 6px;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer;
}
.rp-addr-mode-tab.active{background:var(--olive);color:var(--paper);border-color:var(--olive)}
.rp-addr-mode-fields{display:flex;flex-direction:column;gap:8px}
.rp-addr-mode-fields .rp-sticky-search-row{margin:0}
.rp-addr-mode-fields .rp-sticky-search-row input{min-width:0}

.rp-quick-row{display:flex;align-items:center;gap:10px;margin-top:10px}
.rp-quick-label{font-size:11px;font-weight:700;color:var(--brown);flex:0 0 auto}
.rp-quick-chips{flex:1;display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}
.rp-quick-chips::-webkit-scrollbar{height:4px}
.rp-quick-empty{font-size:11px;color:var(--muted);white-space:nowrap}
.rp-chip{
  flex:0 0 auto;background:var(--ivory);border:1px solid var(--line);border-radius:16px;
  padding:5px 12px;font-size:11.5px;color:var(--ink);cursor:pointer;white-space:nowrap;
}
.rp-chip.is-fav{background:#fdf3da;border-color:#e0c98a;color:#8a6a2a}
.rp-quick-more{
  flex:0 0 auto;background:none;border:none;font-size:11px;font-weight:700;
  color:var(--olive);cursor:pointer;white-space:nowrap;
}

/* ---------- 3열 결과카드 그리드 (PC 2열 유지, 콘텐츠 안정성 위해) ---------- */
.rp-result-grid3{margin-top:20px;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.rp-result-grid3 .rp-card2{min-height:0}

/* ---------- 위험도 분석 ---------- */
.rp-risk-badge{font-size:18px;font-weight:900;font-family:'Noto Serif KR',serif;margin-bottom:8px}
.rp-risk-reason{font-size:12px;color:var(--muted);line-height:1.7}

/* ---------- 체크리스트(카드형) ---------- */
.rp-check-list2{list-style:none;display:grid;gap:6px}
.rp-check-list2 label{
  display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink);
  padding:6px 4px;cursor:pointer;
}
.rp-check-list2 input{width:16px;height:16px;accent-color:var(--olive)}

/* ---------- 고객 설명 카드 ---------- */
.rp-explain-card{
  margin-top:16px;background:var(--paper);border:1px solid var(--gold-line);
  border-radius:12px;padding:16px 18px;
}
.rp-explain-text{font-size:13px;color:var(--ink);line-height:1.8;margin:10px 0 12px}
.rp-copy-btn-lg{
  background:var(--olive);color:var(--paper);border:none;border-radius:8px;
  padding:10px 18px;font-size:12.5px;font-weight:700;cursor:pointer;
}

/* ---------- 임장노트 연동 버튼 ---------- */
.rp-fieldnote-row{margin-top:14px}
.rp-fieldnote-row button{
  width:100%;background:var(--gold-line);color:#3c2e26;border:none;border-radius:10px;
  padding:12px;font-size:13.5px;font-weight:700;cursor:pointer;
}

/* ---------- 고객용 보고서 (기본 접힘) ---------- */
.rp-report-card{margin-top:16px}
.rp-report-toggle{
  width:100%;background:var(--olive-deep);color:var(--paper);border:none;
  border-radius:10px;padding:13px;font-size:13.5px;font-weight:700;cursor:pointer;
  display:flex;justify-content:center;gap:8px;
}
.rp-a4-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}
.rp-a4-meta{font-size:11px;color:var(--muted);text-align:right;line-height:1.8}
.rp-a4-section{margin-bottom:14px;text-align:left}
.rp-a4-section b{display:block;font-size:12px;color:var(--olive-deep);margin-bottom:6px}
.rp-a4-placeholder{
  border:1px dashed var(--line);border-radius:8px;padding:16px;
  font-size:11px;color:var(--muted);text-align:center;
}

/* ---------- ERP형 톤 다운: 여백/버튼/그림자 조정 ---------- */
.rp-card2{box-shadow:0 3px 12px rgba(74,86,57,.08)}
.rp-address-card,.rp-map-card{padding:16px}
.rp-btn-row button,.rp-bottom-actions button{min-height:42px}
.panel-head{margin-bottom:14px}
* { animation-duration: .18s !important; }

@media (max-width:900px){
  .rp-result-grid3{grid-template-columns:1fr}
}
@media (max-width:640px){
  .rp-sticky-search{padding:10px 12px 8px}
  .rp-quick-row{flex-wrap:wrap}
}

/* ---------- 임장노트 / 폼 공통 ---------- */
.fn-form{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:20px}
.fn-row{margin-bottom:14px}
.fn-row label{display:block;font-size:12.5px;font-weight:700;color:var(--olive-deep);margin-bottom:6px}
.fn-row input,.fn-row select,.fn-row textarea{
  width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;
  background:#fff;font-size:13.5px;color:var(--ink);
}
.fn-row textarea{min-height:70px;resize:vertical}
.fn-row-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}

/* ---------- DAILY 관리 ---------- */
.mn-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.mn-admin-preview,.mn-admin-form{
  background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:16px;
}
.mn-admin-preview b,.mn-admin-archive b{
  display:block;font-size:13px;color:var(--olive-deep);margin-bottom:10px;
}
.mn-admin-box{
  height:180px;border:1px dashed var(--line);border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  color:var(--muted);font-size:13px;
}
.mn-admin-archive{margin-top:16px}
.mn-admin-archive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.mn-admin-archive-slot{
  height:80px;border:1px dashed var(--line);border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  font-size:11.5px;color:var(--muted);text-align:center;padding:6px;
}

/* ---------- 체크리스트 ---------- */
.check-list{list-style:none;display:grid;gap:10px}
.check-list li{
  background:var(--paper);border:1px solid var(--line);border-radius:8px;
}
.check-list label{
  display:flex;align-items:center;gap:12px;padding:14px 16px;font-size:14.5px;
  font-weight:600;color:var(--ink);cursor:pointer;
}
.check-list input[type="checkbox"]{width:18px;height:18px;accent-color:var(--olive)}

/* ============================================================
   반응형 — 모바일
============================================================ */
@media (max-width: 860px){
  .hamburger{display:flex}
  .sidebar-close{display:block}
  .sidebar{
    position:fixed;top:0;left:0;bottom:0;z-index:50;
    transform:translateX(-100%);transition:transform .25s ease;
    width:250px;
  }
  .sidebar.open{transform:translateX(0)}
  .sidebar-overlay.show{display:block}
  .content{padding:20px 16px 60px}
  .stat-grid{grid-template-columns:1fr 1fr}
  .card-grid{grid-template-columns:1fr}
  .report-grid{grid-template-columns:1fr}
  .fn-row-2{grid-template-columns:1fr}
  .mn-admin-grid{grid-template-columns:1fr}
  .mn-admin-archive-grid{grid-template-columns:1fr}
  .search-row{flex-direction:column}
  .data-table{min-width:480px}
}

@media (max-width: 480px){
  .stat-grid{grid-template-columns:1fr}
  .brand-sub{display:none}
}

/* ============================================================
   [v1.8] 전유·공용 면적 카드 UI (report-dong.js에서 생성하는
   #rpHosuDetailSummary / #rpHosuDetailRows 전용 스타일)
   ------------------------------------------------------------
   ⚠️ 이 블록은 "전유·공용 면적" 박스 내부 표시 전용입니다.
   페이지 전역 레이아웃·색상·버튼·폰트에는 영향을 주지 않습니다.
============================================================ */

/* 요약 카드 그리드: PC 3~4개 / 태블릿 2~3개 / 모바일 1~2개 */
.rp-areacard-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(150px, 1fr));
  gap:10px;
  margin-bottom:10px;
}

.rp-areacard{
  background:#ffffff;
  border:1px solid #e4e0d4;
  border-radius:11px;
  padding:12px 14px;
  box-shadow:0 1px 3px rgba(60,50,30,0.06);
  transition:box-shadow .15s ease, transform .15s ease;
}
.rp-areacard:hover{
  box-shadow:0 3px 10px rgba(60,50,30,0.10);
  transform:translateY(-1px);
}
.rp-areacard-label{
  font-size:11.5px;
  color:#8a8371;
  font-weight:600;
  letter-spacing:.2px;
  margin-bottom:4px;
}
.rp-areacard-value{
  font-size:19px;
  font-weight:800;
  color:#2f2a20;
  line-height:1.25;
  word-break:keep-all;
}
.rp-areacard-sub{
  font-size:11.5px;
  color:#a39c8c;
  margin-top:2px;
}

/* 상세내역: 공용시설명 | 면적 | 구조 카드 그리드 */
.rp-detailcard-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(160px, 1fr));
  gap:8px;
  border-top:1px dashed #d8d2c4;
  padding-top:10px;
  margin-top:2px;
}
.rp-detailcard{
  background:#faf8f3;
  border:1px solid #e4e0d4;
  border-radius:10px;
  padding:10px 12px;
}
.rp-detailcard.is-jeonyu{
  background:#f4faf4;
  border-color:#cfe3cf;
}
.rp-detailcard-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:5px;
}
.rp-detailcard-gb{
  font-size:11px;
  font-weight:800;
  color:#2e7d32;
  background:rgba(46,125,50,0.10);
  border-radius:5px;
  padding:2px 7px;
}
.rp-detailcard.is-jeonyu .rp-detailcard-gb{
  color:#2e7d32;
  background:rgba(46,125,50,0.14);
}
.rp-detailcard:not(.is-jeonyu) .rp-detailcard-gb{
  color:#8a8371;
  background:rgba(138,131,113,0.12);
}
.rp-detailcard-floor{
  font-size:11px;
  color:#a39c8c;
}
.rp-detailcard-name{
  font-size:12.5px;
  color:#5c5646;
  line-height:1.4;
  margin-bottom:4px;
  word-break:keep-all;
}
.rp-detailcard-area{
  font-size:15px;
  font-weight:700;
  color:#2f2a20;
}
.rp-detailcard-strct{
  font-size:11px;
  color:#a39c8c;
  margin-top:2px;
}

/* 태블릿 */
@media (max-width: 900px){
  .rp-areacard-grid{ grid-template-columns:repeat(auto-fill, minmax(130px, 1fr)); }
  .rp-detailcard-grid{ grid-template-columns:repeat(auto-fill, minmax(140px, 1fr)); }
}

/* 모바일 */
@media (max-width: 480px){
  .rp-areacard-grid{ grid-template-columns:repeat(2, 1fr); gap:8px; }
  .rp-areacard{ padding:10px 12px; }
  .rp-areacard-value{ font-size:17px; }
  .rp-detailcard-grid{ grid-template-columns:repeat(2, 1fr); }
}

/* [v1.9] 인쇄/PDF 저장 시: 고객용 보고서(A4 시트)만 보이고 나머지는 전부 숨김.
   window.print() 호출 전 body에 rp-printing 클래스를 잠깐 붙였다 뗍니다. */
@media print {
  body.rp-printing > *{ visibility:hidden; }
  body.rp-printing #rpReportBody,
  body.rp-printing #rpReportBody *{ visibility:visible; }
  body.rp-printing #rpReportBody{
    display:block !important; position:absolute; left:0; top:0; width:100%; margin:0; padding:0;
  }
  body.rp-printing .rp-a4-sheet{ box-shadow:none; border:none; margin:0; }
  body.rp-printing .rp-btn-row{ display:none !important; }
}
