/* 빌딩뷰 매물관리 — 로컬 전용 화면 */
:root{
  --ink:#16202c; --dim:#6b7785; --line:#e3e8ee; --bg:#f6f8fa; --card:#fff;
  --blue:#1b62d6; --blue-d:#1550b4; --red:#d63b3b; --green:#127a4b; --orange:#d9760f;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
  font:15px/1.5 -apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Pretendard",sans-serif;}
a{color:inherit;text-decoration:none}

.nav{display:flex;align-items:center;gap:22px;padding:0 22px;height:56px;background:#fff;
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.nav .logo{font-weight:800;font-size:17px;letter-spacing:-.3px}
.nav .logo span{color:var(--blue)}
.nav nav{display:flex;gap:16px;align-items:center}
.nav nav a{color:var(--dim);font-weight:600;font-size:14px;padding:4px 2px;white-space:nowrap}
.nav nav a.on,.nav nav a:hover{color:var(--blue)}
/* 더보기 — 가끔 쓰는 메뉴 접기(메뉴가 두 줄로 잘리던 문제, 2026-08-22) */
.nav details.navmore{position:relative}
.nav details.navmore>summary{list-style:none;cursor:pointer;color:var(--dim);font-weight:600;
  font-size:14px;padding:4px 2px;white-space:nowrap;user-select:none}
.nav details.navmore>summary::-webkit-details-marker{display:none}
.nav details.navmore>summary::after{content:"▾";margin-left:4px;font-size:11px}
.nav details.navmore[open]>summary,.nav details.navmore>summary:hover,.nav details.navmore.on>summary{color:var(--blue)}
.nav .morebox{position:absolute;top:calc(100% + 10px);right:0;background:#fff;
  border:1px solid var(--line);border-radius:10px;padding:6px;min-width:150px;
  box-shadow:0 8px 24px rgba(16,32,56,.12);display:none;flex-direction:column;z-index:60}
.nav details.navmore[open] .morebox{display:flex}   /* 닫힘 상태에서 열려 보이던 문제(크롬) */
.nav .morebox a{padding:8px 10px;border-radius:7px}
.nav .morebox a:hover{background:#f2f6fb}
.nav .who{margin-left:auto;font-size:12px;color:var(--dim)}

main{max-width:1240px;margin:0 auto;padding:22px}
.head{display:flex;align-items:center;gap:14px;margin:4px 0 16px}
.head h1{font-size:21px;margin:0;letter-spacing:-.4px}
.head h1 em{font-style:normal;color:var(--dim);font-size:14px;font-weight:600;margin-left:8px}
.head > :last-child{margin-left:auto}

.btn{display:inline-block;border:1px solid var(--line);background:#fff;color:var(--ink);
  border-radius:8px;padding:8px 14px;font-size:14px;font-weight:600;cursor:pointer}
.btn:hover{border-color:#c9d2dc}
.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.btn.primary:hover{background:#1550b4}
.btn.danger{background:#fff;border-color:#f0c4c4;color:var(--red);margin-top:14px}
.btn.big{padding:11px 26px;font-size:15px}
.btn.xs{padding:4px 8px;font-size:12px}

.filters{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.filters input[type=text]{flex:1;min-width:260px}
input,select,textarea{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px;
  background:#fff;color:var(--ink);width:100%}
input:focus,select:focus{outline:2px solid #cfe0fb;border-color:var(--blue)}

table.grid{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);
  border-radius:10px;overflow:hidden}
.grid th,.grid td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.grid thead th{background:#fbfcfd;font-size:12px;color:var(--dim);font-weight:700;white-space:nowrap}
.grid thead th small{display:block;font-weight:500;color:#9aa5b1;font-size:11px}
.grid tbody tr:hover{background:#f8fbff;cursor:pointer}
.grid td.r,.grid th.r{text-align:right}
.grid td small{display:block;font-size:11.5px;color:var(--dim);font-weight:500}
.grid .jibun{font-weight:600;white-space:nowrap}
.grid .sold b{color:var(--ink)}
.grid .ask b{color:var(--blue);font-size:15px}
.grid .ask small.up{color:var(--red);font-weight:700}
.grid .ask small.down{color:var(--blue);font-weight:700}
.grid .empty{text-align:center;color:var(--dim);padding:34px}
.grid tr.cancelled td{background:#fff6f6;color:#a08585;text-decoration:line-through}
.grid tr.cancelled td:last-child{text-decoration:none}
.dim{color:var(--dim)}

.tag{display:inline-block;font-style:normal;font-size:11px;font-weight:700;padding:2px 7px;
  border-radius:999px;line-height:1.6}
.tag.green{background:#e6f5ee;color:var(--green)}
.tag.gray{background:#eef1f4;color:var(--dim)}
.tag.red{background:#fdeaea;color:var(--red)}
.tag.orange{background:#fdf0e0;color:var(--orange)}

.pager{display:flex;gap:6px;margin:16px 0}
.pager a{padding:6px 11px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:13px}
.pager a.on{background:var(--blue);color:#fff;border-color:var(--blue)}
.note{color:var(--dim);font-size:12.5px;margin-top:14px}

/* ── 폼 ── */
.form .card{background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:18px 20px;margin-bottom:16px}
.card h2{font-size:15px;margin:0 0 14px;letter-spacing:-.2px}
.card h2.mt{margin-top:22px}
.card h2 small{font-weight:500;color:var(--dim);font-size:12.5px;margin-left:8px}
.row{display:flex;gap:12px;align-items:flex-end;margin-bottom:12px;flex-wrap:wrap}
.row label{display:block;flex:1;min-width:130px;font-size:12.5px;color:var(--dim);font-weight:600}
.row label input,.row label select{margin-top:5px}
.row label small{font-weight:500;color:#9aa5b1}
.row label.f2{flex:2}.row label.f3{flex:3}
.row label.sm{flex:0 0 80px;min-width:80px}
.row label.chk{flex:0 0 auto;display:flex;align-items:center;gap:6px;color:var(--ink);padding-bottom:9px}
.row label.chk input{width:auto;margin:0}
.row .btn{margin-bottom:1px}
.hint{color:var(--dim);font-size:12.5px;margin:2px 0 10px}
.hint.sm{flex:1;min-width:200px;margin:0 0 10px}
.calc{display:block;color:var(--blue);font-size:12px;font-weight:700;margin-top:4px;min-height:14px}
.flash{background:#e6f5ee;color:var(--green);border:1px solid #bfe3d0;padding:10px 14px;
  border-radius:9px;margin-bottom:14px;font-weight:600}

/* 섹션 제목 옆의 작은 버튼 + 안내 (건축물대장 다시 받기) */
.card h2 .btn{margin-left:10px;vertical-align:middle}
.hint.sm.inline{display:inline;margin-left:8px;font-weight:500}

table.kv{width:100%;border-collapse:collapse;font-size:13.5px}
.kv th{width:120px;text-align:left;color:var(--dim);font-weight:600;background:#fbfcfd;
  padding:8px 12px;border:1px solid var(--line)}
.kv td{padding:8px 12px;border:1px solid var(--line)}
details.ov{margin-top:12px}
details.ov summary{cursor:pointer;color:var(--blue);font-size:13px;font-weight:600;margin-bottom:10px}

.addr{position:relative}
.ac{position:absolute;top:100%;left:0;width:300px;background:#fff;border:1px solid var(--line);
  border-radius:9px;box-shadow:0 8px 24px rgba(20,30,45,.12);z-index:20;display:none;max-height:260px;overflow:auto}
.ac.on{display:block}
.ac div{padding:8px 12px;font-size:13.5px;cursor:pointer}
.ac div:hover{background:#f2f7ff}
.ac div span{color:var(--dim);font-size:12px;margin-left:6px}

.tenancy input,.tenancy select{padding:6px 8px}
.tenancy .w60{width:60px}.tenancy .w90{width:90px}
.tenancy tbody tr:hover{background:none;cursor:default}
.foot{display:flex;align-items:center;gap:14px;margin:18px 0}

/* 필터 줄: 검색칸만 늘어나고 나머지는 제 크기로 */
.filters select{width:auto;min-width:150px;flex:0 0 auto}
.filters .btn{flex:0 0 auto}

/* 좁은 화면: 표는 가로 스크롤, 입력칸은 한 줄씩 */
@media (max-width: 820px){
  html,body{overflow-x:hidden}
  main{padding:14px;max-width:100vw}
  .head{flex-wrap:wrap;gap:8px}
  .head > :last-child{margin-left:0}
  .filters{gap:6px}
  .filters select{min-width:118px;flex:1 1 auto}
  .nav{gap:12px;padding:0 12px;overflow:auto}
  .nav .who{display:none}
  .row label{flex:1 1 100%;min-width:0}
  .filters input[type=text]{min-width:0}
}

/* ── 작업내역 ── */
.actadd{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.actadd select{width:auto;min-width:110px;flex:0 0 auto}
.actadd input{flex:1;min-width:220px}
.actadd .btn{flex:0 0 auto}
ul.acts{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
ul.acts li{padding:9px 2px;border-bottom:1px solid var(--line);display:flex;gap:9px;align-items:baseline;flex-wrap:wrap}
ul.acts li.empty{color:var(--dim);justify-content:center;padding:22px}
ul.acts .body{flex:1;min-width:200px}
ul.acts small{color:var(--dim);font-size:11.5px;white-space:nowrap}
.tag.blue{background:#e7f0fd;color:var(--blue)}

/* ── 건물주 (최고 민감) ── */
.card.owner{border-color:#f0d9bd}
.card.owner .warn{background:#fff8ee;border:1px solid #f2dfc2;color:#8a6317;
  border-radius:8px;padding:9px 12px;font-size:12.5px;margin-bottom:12px}
.hidden{display:none}
#ownerbox{margin-bottom:12px}
.row label.sm2{flex:0 0 120px;min-width:120px}

/* ── 첨부파일 ── */
.upload input[type=file]{padding:6px}
.filelist{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.fitem{width:220px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.fitem.cover{border-color:var(--orange);box-shadow:0 0 0 2px #fdf0e0}
.fitem img{width:100%;height:130px;object-fit:cover;display:block;background:#f3f6f9}
.fitem .doc{display:flex;align-items:center;justify-content:center;height:130px;background:#f3f6f9;
  color:var(--blue);font-weight:700;font-size:13px}
.fitem .meta{padding:8px 10px}
.fitem .meta b{font-size:12.5px;word-break:break-all}
.fitem .acts2{display:flex;gap:6px;padding:0 10px 10px;align-items:center}
.fitem .acts2 form{display:inline}
.calcbox{background:#f4f8ff;border:1px solid #d8e6fb;border-radius:8px;padding:8px 11px;color:var(--ink)}

select.locked{background:#f6f7f9;color:var(--dim)}

.grid td.work{max-width:240px}
.grid td.work span{font-size:12.5px}

/* ══════════════════════════════════════════════════════════════
   3차분 — 검색 조건 · 배지 · 즐겨찾기 · 목록 다듬기
   ══════════════════════════════════════════════════════════════ */

/* ── 검색 조건 (접었다 펴는 상세) ── */
.search{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px 6px;margin-bottom:12px}
.search .filters{margin-bottom:0}
.search label.chk.box{flex:0 0 auto;display:flex;align-items:center;gap:6px;font-size:13.5px;
  font-weight:600;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:0 12px;white-space:nowrap}
.search label.chk.box input{width:auto}
.more{display:none;border-top:1px solid var(--line);margin-top:12px;padding-top:12px}
.more.on{display:block}

/* ★.basis 는 검색 필터의 '기준 고르기' 박스 전용이다. 표 머리글의 th.basis 와 이름이 겹쳐
   th 가 display:flex 가 되면서 칸 높이가 어긋났다(2026-08-20 실측 71px vs 83px). 반드시 .more 로 한정할 것. */
.more .basis{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:#f4f8ff;
  border:1px solid #d8e6fb;border-radius:9px;padding:9px 12px;margin-bottom:12px}
.more .basis b{font-size:13px}
.more .basis label.chk{display:flex;align-items:center;gap:5px;font-size:13.5px;font-weight:600}
.more .basis label.chk input{width:auto;margin:0}
.more .basis .hint.sm{flex:1 1 100%;margin:2px 0 0}

.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.fbox{border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.fbox.wide{margin-top:12px}
.fbox h4{margin:0 0 9px;font-size:12.5px;color:var(--dim);letter-spacing:-.2px}
.fbox h4 small{font-weight:500;margin-left:6px;color:#9aa5b1}
.pair{display:flex;align-items:center;gap:6px;margin-bottom:7px;flex-wrap:wrap}
.pair > span:first-child{flex:0 0 84px;font-size:12.5px;color:var(--dim);font-weight:600}
.pair input,.pair select{flex:1;min-width:74px;padding:6px 8px;font-size:13.5px}
.pair i{font-style:normal;color:var(--dim);font-size:12px}
.pair label.chk{flex:0 0 auto;display:flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;color:var(--ink)}
.pair label.chk input{width:auto;flex:0 0 auto;min-width:0}
.pair .btn{flex:0 0 auto}
.pair .unit{flex:0 0 auto;font-size:12px;color:var(--dim);font-weight:600}
select.tiny{width:auto;flex:0 0 auto;padding:4px 8px;font-size:12px}

/* 배지 고르기 */
.badgepick{display:flex;flex-wrap:wrap;gap:6px}
.bchk{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;
  padding:4px 11px;font-size:12.5px;font-weight:600;cursor:pointer;background:#fff}
.bchk input{width:auto;margin:0}
.bchk i{font-style:normal;font-size:10px;font-weight:700;color:var(--orange);
  background:#fdf0e0;border-radius:4px;padding:1px 4px;margin-left:2px}
.bchk.cust:has(input:checked){border-color:var(--blue);background:#e7f0fd;color:var(--blue)}
.bchk.intl:has(input:checked){border-color:var(--orange);background:#fdf0e0;color:#8a5a12}

/* 정렬·개수 줄 */
.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 0 10px;
  border-top:1px solid var(--line);margin-top:12px}
.toolbar select{width:auto;flex:0 0 auto;padding:6px 9px;font-size:13px}
.toolbar .hint.sm{margin:0}

/* 지금 걸린 조건 (칩) */
.chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 12px}
.chips .dim{font-size:12px}
.chip{display:inline-flex;align-items:center;gap:6px;background:#eef3fb;color:var(--blue);
  border:1px solid #d8e6fb;border-radius:999px;padding:4px 10px;font-size:12.5px;font-weight:600}
.chip i{font-style:normal;color:#8fa9cf;font-weight:700}
.chip:hover{background:#e0eaf9}
.chip.clear{background:#fff;color:var(--dim);border-color:var(--line)}

/* ── 목록 다듬기 ── */
.grid th.c,.grid td.c{text-align:center;width:34px;padding-left:6px;padding-right:6px}
.grid td.c input{width:auto}
.grid th.basis{display:table-cell;background:#eef3fb;color:var(--blue)}
.star{border:0;background:none;font-size:16px;line-height:1;color:#c6ced8;cursor:pointer;padding:0}
.star.on{color:#f0a92b}
.grid .bl{display:block;margin-top:4px}
.grid .bl .tag{margin-right:3px}
form.inline{display:inline}

/* ── 즐겨찾기 화면 ── */
.favlist{display:flex;flex-direction:column;gap:10px}
.fav{background:var(--card);border:1px solid var(--line);border-radius:11px;padding:12px 14px}
.fav .ftop{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fav .ttl{display:flex;align-items:baseline;gap:8px}
.fav .ttl b{font-size:15px}
.fav .ttl span{font-size:12.5px}
.fav .fnum{display:flex;gap:16px;flex-wrap:wrap;margin:8px 0 6px;font-size:12.5px;color:var(--dim)}
.fav .fnum b{color:var(--ink);font-size:13.5px;margin-left:3px}
.fav .fwork{border-top:1px dashed var(--line);padding-top:7px;display:flex;gap:8px;
  align-items:baseline;flex-wrap:wrap;font-size:13px}
.fav .fwork small{font-size:11.5px}
.empty{text-align:center;color:var(--dim);padding:34px}

/* ── 배지 관리 화면 ── */
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin-bottom:16px}
.card.intl{border-color:#f0d9bd}
.card.intl .warn{background:#fff8ee;border:1px solid #f2dfc2;color:#8a6317;border-radius:8px;
  padding:9px 12px;font-size:12.5px;margin-bottom:12px}
.brow{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid #f0f3f6;flex-wrap:wrap}
.brow .bname{flex:0 0 220px;padding:6px 9px}
.brow .chk{display:flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;color:var(--dim)}
.brow .chk input{width:auto}
.brow .ord{font-size:12px;color:var(--dim);display:flex;align-items:center;gap:5px}
.brow .ord input{width:60px;padding:5px 7px}
.brow .dim{font-size:12px}
.brow.new{border-bottom:0;padding-top:12px}
.brow.new input{flex:0 0 320px}

/* ── 억 보조 입력 (단위 착오 방지) ── */
.money2{display:flex;align-items:center;gap:6px;margin-top:5px}
.money2 input{flex:1;min-width:0}
.money2 .u{font-size:11.5px;color:var(--dim);font-weight:700;flex:0 0 auto}
.money2 .eok{flex:0 0 84px}

@media (max-width: 820px){
  .fgrid{grid-template-columns:1fr}
  .pair > span:first-child{flex:0 0 72px}
  .brow .bname,.brow.new input{flex:1 1 100%}
  .fav .fnum{gap:10px}
}

/* 매물 폼의 배지 구역 */
.bsec{border-top:1px solid var(--line);margin-top:6px;padding-top:12px}
.bsec h3{font-size:12.5px;color:var(--dim);margin:0 0 8px}
.bsec h3.mt{margin-top:14px}
.bsec h3 small{font-weight:500;color:#9aa5b1;margin-left:6px}
.head .star{font-size:22px;vertical-align:middle;margin-right:4px}

/* 목록 칸 너비 — 열이 12개라 좁은 칸에서 글자가 세로로 쪼개지는 것을 막는다 */
.grid.list th.nm{min-width:190px}
.grid.list td.agent,.grid.list td.stat,.grid.list th:last-child{white-space:nowrap}
.grid.list td.stat .tag{white-space:nowrap}
.grid.list td.r{white-space:nowrap}
.grid.list td.jibun{white-space:nowrap}
.grid.list td.work{min-width:210px}
.grid.list td.work span{white-space:normal}

/* 승강기 선택칸이 잘리지 않게 */
.pair select[name=elev]{min-width:132px}

/* 좁은 화면 다듬기 — 검색칸은 한 줄 전체, 메뉴는 옆으로 밀어서 보기 */
@media (max-width: 820px){
  .nav nav{flex-wrap:nowrap}
  .nav nav a{white-space:nowrap}
  .search .filters input[type=text]{flex:1 1 100%}
  .search label.chk.box{padding:8px 12px}
  .toolbar{gap:6px}
  .head > div{display:flex;gap:6px;flex-wrap:wrap}
}


/* ── 매물 목록 표 : 가로 스크롤 래퍼 ─────────────────────────────────────
   표 내용이 1,893px 인데 담는 칸이 좁아 열이 잘려 나갔다(2026-08-20).
   미디어쿼리 안에서만 스크롤을 걸면 데스크톱 폭에서 그대로 잘린다 → 항상 래퍼로 감싼다. */
.tw{overflow-x:auto;overflow-y:visible;border-radius:10px;position:relative}
.tw table.grid{margin:0}
.tw::-webkit-scrollbar{height:10px}
.tw::-webkit-scrollbar-thumb{background:#cfd8e3;border-radius:5px}

/* 가로로 밀어도 어느 매물인지 보이게 지번 열 고정 */
.grid.list th.jibun-h,.grid.list td.jibun{position:sticky;left:0;z-index:2;
  background:var(--card);box-shadow:1px 0 0 var(--line)}
.grid.list thead th.jibun-h{background:#fbfcfd;z-index:3}
.grid.list tbody tr:hover td.jibun{background:#f8fbff}

/* 배지는 한 줄만. 넘치면 +N — 행 높이가 매물마다 들쭉날쭉하던 문제 */
.grid .bl{display:flex;gap:3px;align-items:center;flex-wrap:nowrap;overflow:hidden;margin-top:4px}
.grid .bl .tag{flex:0 0 auto}
.grid .bl .more-n{font-size:11px;color:var(--dim);font-weight:700;white-space:nowrap}

/* 좁아지면 덜 중요한 열부터 숨긴다.
   ★'전에 팔린 값'과 '지금 내놓은 값'은 이 화면의 존재 이유라 절대 숨기지 않는다. */
@media (max-width: 1180px){ .grid.list .col-tot{display:none} }
@media (max-width: 1040px){ .grid.list .col-agent{display:none} }
@media (max-width: 920px){  .grid.list .col-ppy{display:none} }
@media (max-width: 820px){  .grid.list .col-work{display:none} }

/* 건물명 칸 : 이름·특징을 각각 한 줄로 잘라 행 높이를 고르게 (2026-08-20 실측 143px vs 126px) */
.grid.list td.nmcell{max-width:300px}
.grid.list td.nmcell b,.grid.list td.nmcell small.dim{
  display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.grid.list td.work span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;white-space:normal}


/* ══ 6묶음 : 필지·주변역·재거래 수익률·공시지가 그래프 ══════════════════════ */

/* 대지면적 3종 나란히 — 셋이 다를 수 있어서 셋을 다 보여 준다 */
.areabox{display:flex;gap:10px;flex-wrap:wrap;margin:2px 0 12px}
.areabox .ab{flex:1 1 180px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;
  background:#fbfcfd}
.areabox .ab.hi{border-color:#bcd4f6;background:#f4f8ff}
.areabox .ab span{display:block;font-size:12px;color:var(--dim);font-weight:600}
.areabox .ab b{display:block;font-size:19px;letter-spacing:-.4px;margin:2px 0 1px}
.areabox .ab small{color:var(--dim);font-size:11.5px}
.hint.warn2{background:#fff8ee;border:1px solid #f0dcbd;border-radius:8px;padding:8px 11px;
  color:#8a5a10}

.grid.parcels td{padding:7px 10px}
.grid.parcels .tag{font-size:11px}

/* 주변역 */
.stations{list-style:none;margin:2px 0 0;padding:0;display:flex;gap:8px;flex-wrap:wrap}
.stations li{display:flex;align-items:baseline;gap:7px;border:1px solid var(--line);
  border-radius:999px;padding:6px 14px;background:#fff}
.stations li b{font-size:15px}
.stations li i{font-style:normal;font-size:11px;color:var(--blue);font-weight:700}
.stations li span{font-weight:700}
.stations li small{font-size:11.5px}

/* ★재거래 실현수익률 */
.resale{display:flex;flex-direction:column;gap:10px;margin:2px 0 8px}
.rcard{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fbfcfd}
.rcard .rmain{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.rcard .ann{font-size:24px;font-weight:800;letter-spacing:-.6px}
.rcard .ann.up{color:var(--red)}
.rcard .ann.down{color:var(--blue)}
.rcard .rmain em{font-style:normal;color:var(--dim);font-weight:600;font-size:13px}
.rcard .rflow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:8px 0 6px}
.rcard .rflow > span{display:flex;flex-direction:column}
.rcard .rflow i{font-style:normal;font-size:11px;color:var(--dim);font-weight:600}
.rcard .rflow b{font-size:16px}
.rcard .rflow small{font-size:11.5px;color:var(--dim)}
.rcard .arw{font-size:18px;color:var(--dim);align-self:center}
.rcard .mul{margin-left:auto;font-weight:800;color:var(--orange);
  border:1px solid #f0dcbd;background:#fff8ee;border-radius:999px;padding:3px 12px;align-self:center}
.rcard .rwhy{margin:0;font-size:12px;color:var(--dim);line-height:1.55;
  border-top:1px dashed var(--line);padding-top:7px}

/* 공시지가 선 그래프 */
.lpwrap{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:2px 0 12px;
  border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:#fbfcfd}
.lpwrap > svg{flex:1 1 340px;min-width:280px}
.lpnums{flex:0 0 190px;display:flex;flex-direction:column;gap:8px}
.lpnums > div span{display:block;font-size:12px;color:var(--dim);font-weight:600}
.lpnums > div b{font-size:17px;letter-spacing:-.3px}
.lpnums > div b.up{color:var(--red)}
.lpnums > div b.down{color:var(--blue)}
.lpnums > div small{display:block;color:var(--dim);font-size:11px}
.grid td.up{color:var(--red)}
.grid td.down{color:var(--blue)}

/* 목록 : 주변역 열 — 연면적과 같은 순위로 숨긴다(있으면 좋지만 없어도 되는 정보).
   숨김 우선순위: 주변역·연면적(1180) → 담당자(1040) → 평당가(920) → 최근작업(820).
   ★'전에 팔린 값'과 '지금 내놓은 값'은 이 화면의 존재 이유라 끝까지 남긴다. */
@media (max-width: 1180px){ .grid.list .col-sub{display:none} }
/* 역 이름·호선이 길어도 행 높이가 흔들리지 않게 각각 한 줄로 자른다
   (건물명 칸 .nmcell 과 같은 처리 — 2026-08-20) */
.grid.list th.col-sub,.grid.list td.subw{max-width:150px}
.grid.list td.subw b,.grid.list td.subw small{display:block;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;max-width:100%}
.grid.list td.subw small{color:var(--dim);font-size:11px}
.grid.list td.jibun .exn{display:block;font-size:11px;color:var(--orange);font-weight:700}

/* ============================================================ 7묶음 · 기록과 운영 */
/* 탭 (변경이력·조회내역·보류함) */
.tabs{display:flex;gap:6px;margin:0 0 12px;flex-wrap:wrap}
.tabs a{padding:8px 14px;border:1px solid var(--line);border-radius:9px 9px 0 0;background:#fbfcfd;
  font-size:13.5px;font-weight:700;color:var(--dim);border-bottom-color:transparent}
.tabs a.on{background:#fff;color:var(--blue);border-color:var(--line);box-shadow:inset 0 2px 0 var(--blue)}
.tabs a small{font-weight:500;color:#9aa5b1;margin-left:5px}

/* 낱알 필터 (회사 안/밖 · 조회 종류) */
.pill{display:inline-block;padding:5px 11px;border:1px solid var(--line);border-radius:999px;
  background:#fff;font-size:12.5px;font-weight:700;color:var(--dim)}
.pill.on{background:var(--blue);border-color:var(--blue);color:#fff}
.pill.out.on{background:var(--orange);border-color:var(--orange)}

/* 기록 표 */
.grid.hist tbody tr:hover{background:#fbfcfd;cursor:default}
.grid.hist tr.ext td{background:#fffaf3}
.grid.hist td.ip{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;color:var(--dim)}
.grid.hist td.r.alarm b{color:var(--red)}
.grid.hist td.r.alarm small{color:var(--red);font-weight:700}
.grid td.diff b{display:block;font-size:12.5px;color:var(--dim);font-weight:700;margin-bottom:3px}
.grid td.diff .old{background:#fdeaea;color:#8a3b3b;padding:2px 7px;border-radius:6px}
.grid td.diff .new{background:#e6f5ee;color:#1c6b45;padding:2px 7px;border-radius:6px;font-weight:700}
.grid td.diff i{font-style:normal;color:var(--dim);margin:0 5px}
h2.sec{font-size:15px;margin:22px 0 10px}

/* 일괄 처리 막대 */
.grid.pick tbody tr:hover{background:#f8fbff;cursor:default}
.grid.pick input[type=checkbox]{width:auto;margin:0}
.bulkbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px;
  background:#f4f8ff;border:1px solid #d8e6fb;border-radius:10px;padding:10px 12px}
.bulkbar b{font-size:13px;flex:0 0 auto}
.bulkbar b .pickn{color:var(--blue);font-size:15px}
.bulkbar select{width:auto;min-width:170px;flex:0 0 auto}
.bulkbar input[type=text]{flex:1;min-width:180px}
.bulkbar .btn[disabled]{opacity:.45;cursor:not-allowed}
.bulkbar .hint.sm{flex:1 1 100%;margin:2px 0 0}
.flash.bad{background:#fdeaea;color:var(--red);border-color:#f0c4c4}

/* 대시보드 */
.card.todo{margin-bottom:14px}
.tcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.tcard{display:block;border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#fff}
.tcard:hover{border-color:#c9d2dc;background:#fbfcfd}
.tcard b{display:block;font-size:26px;letter-spacing:-1px;line-height:1.1}
.tcard span{display:block;font-size:13px;font-weight:600;margin-top:4px}
.tcard small{display:block;font-size:11.5px;color:var(--dim);margin-top:3px}
.tcard.warn{border-color:#f2dfc2;background:#fff8ee}
.tcard.warn b{color:var(--orange)}
.dash2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;align-items:start}
.dash2 > .card{margin:0}
.nums{display:flex;gap:8px;flex-wrap:wrap}
.nums a{flex:1;min-width:90px;border:1px solid var(--line);border-radius:9px;padding:10px 12px;background:#fff}
.nums a:hover{background:#f8fbff}
.nums b{display:block;font-size:22px;letter-spacing:-.6px}
.nums b.ok{color:var(--green)}.nums b.off{color:var(--dim)}
.nums span{display:block;font-size:12px;color:var(--dim);font-weight:600;margin-top:2px}
.nums.sub{margin-top:8px}
.nums.sub b{font-size:17px}
.pipe{display:flex;gap:6px;flex-wrap:wrap}
.pipe a{flex:1;min-width:74px;text-align:center;border:1px solid var(--line);border-radius:9px;padding:9px 6px}
.pipe a:hover{background:#f8fbff}
.pipe b{display:block;font-size:19px}
.pipe span{display:block;font-size:11.5px;color:var(--dim);font-weight:600;margin-top:2px}
.feed{list-style:none;margin:0;padding:0}
.feed li{padding:9px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.feed li:last-child{border-bottom:0}
.feed .when{color:var(--dim);font-size:12px;margin-right:7px}
.feed small{display:block;color:var(--dim);font-size:12.5px;margin-top:3px}
.feed small i{font-style:normal;color:var(--blue);font-weight:700}
.feed em{font-style:normal;font-size:11.5px;margin-left:2px}

@media (max-width:1000px){
  .dash2{grid-template-columns:1fr}
}

/* 메뉴가 늘어나 좁은 화면에서 넘칠 수 있다. 줄바꿈 대신 가로 스크롤로 흘린다
   (머리글 높이 56px 를 지켜야 목록 표 위치가 안 흔들린다). */
@media (max-width:1220px){
  .nav{gap:14px;padding:0 14px}
  .nav nav{gap:12px;overflow-x:auto;white-space:nowrap;scrollbar-width:none}
  .nav nav::-webkit-scrollbar{display:none}
  .nav nav a{font-size:13px;flex:0 0 auto}
  .nav .who{display:none}
}
@media (max-width:820px){
  .nav .logo{font-size:15px}
  .tcards{grid-template-columns:1fr 1fr}
}

/* ── 8묶음: 지도에서 넘어온 등록 폼 안내 ─────────────────────── */
.hint.okmsg{background:#eef7f1;border:1px solid #c8e3d3;border-radius:8px;padding:9px 12px;
  color:#215c3d;font-size:13px;line-height:1.65}
.hint.warnmsg{background:#fff8ee;border:1px solid #f0dcbd;border-radius:8px;padding:9px 12px;
  color:#8a5a12;font-size:13px;line-height:1.65}
.hint .rd{color:#d63b3b}

/* ══════════════════════════════════════════════════════════════════
   9묶음 · 목록 "한눈에" 표 (2026-08-20)
   지번·건물명·담당자·상태를 한 칸(빌딩)으로 묶어 가로폭을 줄이고,
   그 자리에 보증금·월세·도로·기능 버튼을 넣었다.
   ══════════════════════════════════════════════════════════════════ */
.grid.list.wide{font-size:12.5px}
.grid.list.wide th,.grid.list.wide td{padding:7px 8px;vertical-align:middle}
.grid.list.wide thead th{line-height:1.25}
.grid.list.wide thead th small{display:block;font-size:10px;color:var(--dim);font-weight:400}

/* 빌딩 칸 — 4줄(지번/건물명/담당자/상태) */
.grid.list.wide th.bldg-h,.grid.list.wide td.bldg{position:sticky;left:0;z-index:2;
  background:#fff;box-shadow:1px 0 0 var(--line);min-width:190px;max-width:230px}
.grid.list.wide thead th.bldg-h{background:#fbfcfd;z-index:3}
.grid.list.wide tbody tr:hover td.bldg{background:#f8fbff}
.grid.list.wide td.bldg a.jb{display:inline-block;font-weight:700;color:var(--ink);
  text-decoration:none;white-space:nowrap}
.grid.list.wide td.bldg a.nm2{display:block;color:var(--blue);text-decoration:none;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.grid.list.wide td.bldg small.who{display:block;color:var(--dim);font-size:11px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.grid.list.wide td.bldg .st{display:block;margin-top:2px}
.grid.list.wide td.bldg .exn{display:inline;margin-left:4px;font-size:11px;
  color:var(--orange);font-weight:700}

/* 면적 — 숫자 아래 평 */
.grid.list.wide td.ar small{display:block;color:var(--dim);font-size:11px}
/* 수익률 — 매물 기준 아래 (매각 기준) */
.grid.list.wide td.yld small{display:block;color:var(--dim);font-size:11px}
.grid.list.wide td.sold small,.grid.list.wide td.ask small{display:block;font-size:11px}
.grid.list.wide td.col-dn{font-variant-numeric:tabular-nums}
.grid.list.wide td.r{white-space:nowrap;font-variant-numeric:tabular-nums}

/* 기능 버튼 — 2열로 접어 세로를 아낀다 */
.grid.list.wide td.acts{white-space:normal;min-width:184px}
.grid.list.wide td.acts .mini{display:inline-block;margin:1px;padding:3px 7px;
  border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--ink);
  font-size:11px;line-height:1.5;cursor:pointer;text-decoration:none;white-space:nowrap}
.grid.list.wide td.acts .mini:hover{background:#f3f6fb;border-color:#b9c6d8}
.grid.list.wide td.acts .mini.off{opacity:.4;pointer-events:none}

/* 좁아지면 이 순서로 숨긴다 — 왼쪽(빌딩·가격)이 마지막까지 남는다 */
@media (max-width: 1340px){ .grid.list.wide .col-ppy{display:none} }
@media (max-width: 1240px){ .grid.list.wide .col-sub{display:none} }
@media (max-width: 1140px){ .grid.list.wide .col-road{display:none} }
@media (max-width: 1060px){ .grid.list.wide .col-dep{display:none} }
@media (max-width: 960px){  .grid.list.wide .col-tot{display:none} }
@media (max-width: 880px){  .grid.list.wide .col-dn{display:none} }

/* 목록 화면은 표가 넓다 — 본문 폭 제한을 풀어 한 화면에 다 넣는다 (2026-08-20) */
main.wide{max-width:none;padding:22px 18px}
/* 표를 컨테이너 폭에 맞추려고 칸을 짓눌러 줄바꿈시키지 않는다.
   자리가 모자라면 칸을 줄이는 대신 표를 가로로 스크롤시킨다(행 높이를 지킨다). */
.grid.list.wide{width:max-content;min-width:100%}
.grid.list.wide td.acts{min-width:124px;max-width:132px}

/* 지번 옆 복사 아이콘 (2026-08-20 — 기능 칸의 [주소복사] 를 여기로 옮겼다) */
.grid.list.wide td.bldg .cpbtn{display:inline-flex;align-items:center;justify-content:center;
  width:20px;height:20px;margin-left:4px;padding:0;vertical-align:-4px;
  border:1px solid transparent;border-radius:5px;background:none;color:var(--dim);cursor:pointer}
.grid.list.wide td.bldg .cpbtn:hover{background:#eef3fa;border-color:var(--line);color:var(--blue)}
.grid.list.wide td.bldg .cpbtn.done{color:#1a7f37;background:#e8f5ec;border-color:#bfe3c9}

/* 매물 폼 탭 (2026-08-20) — 섹션 11개를 네 묶음으로 */
.ftabs{display:flex;gap:6px;margin:0 0 14px;border-bottom:2px solid var(--line);
  position:sticky;top:0;z-index:20;background:var(--bg);padding-top:2px}
.ftabs .ft{appearance:none;border:0;background:none;cursor:pointer;padding:9px 14px 8px;
  margin-bottom:-2px;border-bottom:2px solid transparent;border-radius:6px 6px 0 0;
  font-size:14px;font-weight:700;color:var(--dim);text-align:left;line-height:1.25}
.ftabs .ft small{display:block;font-size:11px;font-weight:400;color:var(--dim);margin-top:1px}
.ftabs .ft:hover{background:#eef3fa;color:var(--ink)}
.ftabs .ft.on{color:var(--blue);border-bottom-color:var(--blue)}
.ftabs .ft.on small{color:var(--blue);opacity:.75}
@media (max-width: 820px){
  .ftabs{overflow-x:auto}
  .ftabs .ft{white-space:nowrap;padding:8px 10px}
  .ftabs .ft small{display:none}
}

/* 접는 묶음 — 늘 펴 둘 필요 없는 것(좌표·배지)을 접는다 (2026-08-20) */
.card details.fold{margin:10px 0 0;border:1px solid var(--line);border-radius:8px;background:#fcfdff}
.card details.fold > summary{cursor:pointer;padding:9px 12px;font-weight:700;font-size:13px;
  list-style:none;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.card details.fold > summary::-webkit-details-marker{display:none}
.card details.fold > summary::before{content:'▸';color:var(--dim);font-size:11px}
.card details.fold[open] > summary::before{content:'▾'}
.card details.fold > summary small{font-weight:400;color:var(--dim);font-size:11.5px}
.card details.fold > summary:hover{background:#f3f7fd;border-radius:8px}
.card details.fold > *:not(summary){padding:0 12px 12px}
.card details.fold .foldnow{font-weight:700;color:var(--blue);font-size:12px;
  background:#eaf1fb;border-radius:20px;padding:1px 9px}
.card details.fold.bsec h3{margin:10px 0 6px}

/* 더 심플하게 — 라벨·여백·설명을 줄인다 (2026-08-20) */
.form .row label{font-size:12px}
.form .card{padding:16px 18px}
.form .card h2{margin-bottom:12px}
.form .row label.chk.sanchk{flex:0 0 auto;padding-bottom:8px;color:var(--dim);font-weight:600}
/* 칸 옆 설명은 회색 작은 글씨로 한 줄만 */
.form .row .hint,.form .card > .hint{font-size:11.5px;color:var(--dim);margin:2px 0 0}
.form details.fold > summary small{font-size:11px}

/* ══════════════════════════════════════════════════════════════════
   폼 격자 (2026-08-20 · 사용자: "칸 크기가 다 제각각")
   전에는 .row 가 flex 라 라벨이 늘어나고, 그 안에서 칸만 잘라 놨더니
   칸 오른쪽 끝이 제각각이고 지번과 본번 사이에 빈 땅이 생겼다.
   → 12칸 격자에 맞춘다. 칸은 자기 격자를 꽉 채우므로 세로줄이 맞는다.
   ══════════════════════════════════════════════════════════════════ */
.form .row{display:grid;grid-template-columns:repeat(12,1fr);gap:12px 14px;
  align-items:end;margin-bottom:14px}
.form .row > label{grid-column:span 3;min-width:0}
.form .row > label.f2{grid-column:span 6}
.form .row > label.f3{grid-column:span 12}
.form .row > label.sm{grid-column:span 2}
.form .row > label.sm2{grid-column:span 3}
.form .row > label.chk{grid-column:span 3;padding-bottom:10px}
.form .row > .hint{grid-column:span 6;align-self:center;margin:0}
.form .row > .btn{grid-column:span 2}
.form .row label input,.form .row label select,.form .row label textarea{
  display:block;width:100%;max-width:none;margin-top:4px}
.form .row label.chk input{display:inline-block;width:auto;margin-top:0}

/* 주소 한 줄 — 지번 · 산 · 본번 · 부번 · [확인] 을 붙여 한 덩어리로 */
.form .row.addr{grid-template-columns:minmax(0,5fr) auto minmax(0,2fr) minmax(0,2fr) auto;gap:10px}
.form .row.addr > label,.form .row.addr > .btn{grid-column:auto}
.form .row.addr > label.chk.sanchk{padding-bottom:9px;white-space:nowrap}

@media (max-width: 900px){
  .form .row{grid-template-columns:repeat(6,1fr)}
  .form .row > label,.form .row > label.f2,.form .row > label.f3{grid-column:span 6}
  .form .row > label.sm{grid-column:span 2}
  .form .row > .hint{grid-column:span 6}
  .form .row.addr{grid-template-columns:1fr auto 1fr 1fr auto}
}

/* ══════════════════════════════════════════════════════════════════
   가시성 (2026-08-20 · 사용자: "가시성이 좋지 않아요")
   라벨이 12px 회색(--dim)이라 흐리고, 칸 테두리가 연해 어디가 입력칸인지
   한눈에 안 들어왔다. 라벨을 진하게 · 칸 테두리를 또렷하게 · 칸을 조금 키운다.
   ══════════════════════════════════════════════════════════════════ */
.form .row > label{font-size:13px;font-weight:700;color:#33404f;letter-spacing:-.2px}
.form .row > label small{font-weight:500;color:var(--dim);font-size:11.5px}
.form .row label input,.form .row label select,.form .row label textarea{
  padding:9px 11px;font-size:14px;border:1px solid #cdd6e0;background:#fff;color:var(--ink)}
.form .row label input:hover,.form .row label select:hover{border-color:#b3c0d0}
.form .row label input::placeholder{color:#a7b2be}
.form .card h2{font-size:16px;color:var(--ink)}
.form details.fold > summary{font-size:13.5px;color:#33404f}
/* 읽기 전용 표(대장·실거래)의 글자도 한 단계 진하게 */
.form .card .grid td{color:var(--ink)}
.form .card .grid th{color:#41505f}

/* 폭 배분 유틸 — 한 줄이 12칸을 꽉 채우게 */
.form .row > label.c4{grid-column:span 4}
.form .row > label.c5{grid-column:span 5}
.form .row > label.c8{grid-column:span 8}

/* ══════════════════════════════════════════════════════════════════
   표 형식 폼 (2026-08-20 · 사용자가 보여 준 예시 화면 구조)
   라벨을 왼쪽 회색 칸에 고정하고 값을 오른쪽에 둔다 —
   세로줄이 딱 맞아 "어디에 무엇을 넣는지"가 한눈에 들어온다.
   생김새(둥근 모서리·파랑 강조)는 우리 것을 유지한다.
   ══════════════════════════════════════════════════════════════════ */
.form .row{gap:0;margin-bottom:0;border-top:1px solid var(--line)}
.form .row:last-of-type{border-bottom:1px solid var(--line)}
.form .row > label,.form .row > .fld{display:grid;grid-template-columns:104px minmax(0,1fr);
  align-items:center;min-height:44px;border-left:1px solid var(--line)}
.form .row > label:first-child,.form .row > .fld:first-child{border-left:0}
.form .row > label > .lb,.form .row > .fld > .lb{align-self:stretch;display:flex;align-items:center;gap:4px;
  padding:0 10px;height:100%;background:#f7f9fc;border-right:1px solid var(--line);
  font-size:12.5px;font-weight:700;color:#41505f;line-height:1.3}
.form .row > label > .lb small,.form .row > .fld > .lb small{font-weight:500;color:var(--dim);font-size:11px}
.form .row > label > .lb .req,.form .row > .fld > .lb .req{color:var(--red)}
.form .row label input,.form .row label select,.form .row label textarea{
  margin:0 10px;width:calc(100% - 20px);border:1px solid #d8dfe8;padding:7px 10px;font-size:13.5px}
.form .row > label.chk{padding:0 10px;min-height:44px;align-items:center;
  border-left:1px solid var(--line);font-size:12.5px;color:#41505f;font-weight:600}
.form .row > .hint{padding:0 12px;font-size:11.5px;align-self:center;
  border-left:1px solid var(--line)}
.form .row > .btn{margin:6px 10px;grid-column:span 2}
/* 카드 안쪽 여백을 줄여 표가 카드에 꽉 차게 */
.form .card{padding:0;overflow:hidden}
.form .card > h2{margin:0;padding:11px 14px;background:#eef2f7;
  border-bottom:1px solid var(--line);font-size:14px;font-weight:800;color:#2b3846}
.form .card > h2 small,.form .card > h2 .btn{font-weight:600}
.form .card > .hint,.form .card > p,.form .card > details,.form .card > table,
.form .card > .bsec,.form .card > .tw{margin-left:14px;margin-right:14px}
.form .card > details.fold{margin-top:12px;margin-bottom:12px}
.form .card > .hint{margin-top:8px;margin-bottom:10px}

/* 한 칸 안에 여러 입력을 나란히 (지번+산 · 본번-부번-확인) */
.form .row > label > .cell,.form .row > .fld > .cell{display:flex;align-items:center;gap:6px;padding:0 10px;min-width:0}
.form .row > label > .cell input,.form .row > .fld > .cell input{margin:0;width:auto;flex:1;min-width:0}
.form .row > label > .cell .dash,.form .row > .fld > .cell .dash{color:var(--dim);font-style:normal}
.form .row > label > .cell .btn,.form .row > .fld > .cell .btn{margin:0;flex:0 0 auto;padding:7px 14px}
.form .row > label > .cell label.chk,.form .row > .fld > .cell label.chk{flex:0 0 auto;min-height:0;border:0;padding:0;
  display:flex;align-items:center;gap:4px;color:var(--dim);font-weight:600;font-size:12.5px;white-space:nowrap}
.form .row > label > .cell label.chk input,.form .row > .fld > .cell label.chk input{flex:0 0 auto;width:auto}
.form .row.addr{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.form .row.addr > label,.form .row.addr > .fld{grid-column:auto}

/* 접은 묶음도 표의 한 줄처럼 (좌우 여백 없이 카드 폭을 꽉 채운다) */
.form .card > details.fold{margin:0;border:0;border-top:1px solid var(--line);border-radius:0;background:#fff}
.form .card > details.fold > summary{padding:11px 14px}
.form .card > details.fold > *:not(summary){padding:0 14px 14px}
/* 대장 표(kv)의 라벨 칸도 같은 회색으로 — 폼 줄과 한 벌로 보이게 */
.form .card > table.kv{margin:0;width:100%;border-collapse:collapse}
.form .card > table.kv th{background:#f7f9fc;color:#41505f;font-size:12.5px;font-weight:700;
  text-align:left;padding:9px 10px;border:1px solid var(--line);border-left:0;width:104px}
.form .card > table.kv td{padding:9px 10px;border:1px solid var(--line);border-left:0;font-size:13.5px}
.form .card > table.kv tr > *:last-child{border-right:0}

.form .row > .fld input,.form .row > .fld select{margin:0 10px;width:calc(100% - 20px);border:1px solid #d8dfe8;padding:7px 10px;font-size:13.5px}
.form .row > .fld > .cell input{margin:0;width:auto}

/* 섹션 머리바의 버튼들 — 오른쪽에 붙인다 (2026-08-20) */
.form .card > h2{display:flex;align-items:center;gap:8px}
.form .card > h2 .h2btns{margin-left:auto;display:flex;gap:6px}
.form .card > h2 .btn.xs{padding:4px 12px;font-size:12.5px;font-weight:700}
.form .card > h2 .btn.xs.on{background:var(--blue);border-color:var(--blue);color:#fff}
.form .card > h2 .hint.inline{font-weight:500;font-size:11.5px;color:var(--dim);margin:0}
.form .card > .ov{border-top:1px solid var(--line)}
.form .card > .ov > .row:first-child{border-top:0}

/* .card h2 .btn{margin-left:10px} 보다 뒤·더 구체적으로 둔다 */
.form .card > h2 > .h2btns{margin-left:auto}
.form .card > h2 > .h2btns > .btn{margin-left:0}

/* ── 한 라벨에 입력이 여러 개인 줄 (매물가격 만원/억 등) ─────────────────────
   격자 라벨은 '라벨칸 + 값칸' 두 칸인데, 값 쪽 요소가 둘 이상이면
   칸마다 하나씩 흩어져 줄이 깨졌다(2026-08-20 사용자 신고 · 3. 매물 정보).
   → 라벨칸은 세로로 전부 차지하고, 나머지는 전부 값칸(2열)에 쌓는다. */
.form .row > label > .lb,.form .row > .fld > .lb{grid-column:1;grid-row:1 / -1}
.form .row > label > *:not(.lb),.form .row > .fld > *:not(.lb){grid-column:2}
.form .row > label > .money2{display:flex;align-items:center;gap:5px;padding:0 10px;min-width:0}
.form .row > label > .money2 input{margin:0;width:auto;flex:1 1 0;min-width:0}
.form .row > label > .money2 .u{flex:0 0 auto;color:var(--dim);font-size:11.5px;font-weight:600}
.form .row > label > .calc{padding:2px 10px 0;font-size:11.5px;color:var(--blue);font-weight:700}
.form .row > label > .calc:empty{display:none}

/* 체크박스 줄은 격자가 아니라 한 줄로 (체크 + 글자) */
.form .row > label.chk{display:flex;align-items:center;gap:6px;white-space:nowrap}
.form .row > label.chk > input{flex:0 0 auto;width:auto;margin:0}
/* 만원 칸을 억 칸보다 넓게 — 실제로 만원 칸에 더 긴 숫자가 들어간다 */
.form .row > label > .money2 input{flex:2 1 0}
.form .row > label > .money2 input.eok{flex:1 1 0}

/* ══════════════════════════════════════════════════════════════════
   한 줄에 필드 두 개 (2026-08-20 · 사용자: "이런식으로 나뉘는 게 더 깔끔")
   예시 화면은 [라벨|값][라벨|값] 두 쌍이 한 줄이다.
   우리는 12칸에 서너 개를 우겨넣어 값 칸이 좁아졌다 → 두 쌍으로 고정한다.
   ══════════════════════════════════════════════════════════════════ */
.form .row{grid-template-columns:repeat(2,minmax(0,1fr))}
.form .row > label,.form .row > .fld{grid-column:span 1}
.form .row > label.f2,.form .row > label.f3,.form .row > label.c4,
.form .row > label.c5,.form .row > label.c8{grid-column:span 2}
.form .row > label.sm,.form .row > label.sm2{grid-column:span 1}
.form .row > .hint{grid-column:span 1}
.form .row.addr{grid-template-columns:repeat(2,minmax(0,1fr))}
.form .row.addr > .fld{grid-column:span 1}
/* 라벨 칸을 조금 넓히고 값 칸에 숨통을 준다 */
.form .row > label,.form .row > .fld{grid-template-columns:126px minmax(0,1fr)}
.form .row > label > .lb,.form .row > .fld > .lb{padding:0 12px}
.form .row label input,.form .row label select,.form .row label textarea,
.form .row > .fld input,.form .row > .fld select{padding:8px 10px;font-size:13.5px}
@media (max-width: 900px){
  .form .row{grid-template-columns:1fr}
  .form .row > label,.form .row > .fld,.form .row > label.f2,.form .row > label.f3,
  .form .row > label.c4,.form .row > label.c8,.form .row > .hint{grid-column:span 1}
}
/* 체크박스도 한 칸 — span 3 이 남아 있어 그 줄만 3열이 됐다 */
.form .row > label.chk{grid-column:span 1}

/* ── 세로 가운데 줄을 위에서 아래까지 하나로 (2026-08-20 사용자 지적) ────────
   폼 줄은 이미 정확히 절반(2열 1fr)인데 두 곳이 어긋났다:
     · 주소 줄 : gap:10px 때문에 5px 밀림
     · 건축물대장 표 : th 를 104px 로 잡아 33px 왼쪽
   → 주소 줄의 gap 을 없애고, 대장 표를 고정폭 4열(126px + 1fr + 126px + 1fr)로 맞춘다.
     그러면 둘째 라벨 칸이 정확히 카드 절반에서 시작한다. */
.form .row.addr{gap:0}
.form .card > table.kv{table-layout:fixed}
.form .card > table.kv th{width:126px}
.form .card > table.kv td{width:auto}

/* 건축물대장 층별정보 (2026-08-20) — 대장 그대로 보여 주는 읽기 전용 표 */
.form .card > .flblock{border-top:1px solid var(--line)}
.form .card > .flblock > h3{margin:0;padding:10px 14px;font-size:13px;font-weight:800;color:#41505f;
  background:#fbfcfe;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}
.form .card > .flblock > h3 small{font-weight:500;color:var(--dim);font-size:11.5px}
.form .card > .flblock > h3 .cnt{margin-left:auto;font-weight:700;color:var(--blue);font-size:12px;
  background:#eaf1fb;border-radius:20px;padding:1px 9px}
.form .card > .flblock table.fl{width:100%;border-collapse:collapse;font-size:13px}
.form .card > .flblock table.fl th,.form .card > .flblock table.fl td{
  padding:7px 12px;border-bottom:1px solid var(--line);text-align:left}
.form .card > .flblock table.fl thead th{background:#f7f9fc;color:#41505f;font-size:12px;font-weight:700}
.form .card > .flblock table.fl td.flno{width:96px;font-weight:700;white-space:nowrap}
.form .card > .flblock table.fl td.fluse{color:var(--ink)}
.form .card > .flblock table.fl .r{text-align:right;white-space:nowrap}
.form .card > .flblock table.fl tfoot th{background:#f7f9fc;font-size:12.5px;border-bottom:0}
.form .card > .flblock table.fl td.dim{color:var(--dim);font-size:12px}
.form .card > .flblock .empty.sm{margin:0;padding:14px;color:var(--dim);font-size:12.5px}
@media (max-width: 900px){ .form .card > .flblock .hide-sm{display:none} }
.form .card > .flblock .fldiff{margin:0;padding:9px 14px;font-size:11.5px;color:#7a6a3a;
  background:#fdf9ec;border-top:1px solid var(--line)}

/* 법정동 자동완성은 그 입력칸 바로 아래에 뜬다
   (칸을 격자로 바꾸면서 기준점이 줄 전체가 돼 오른쪽에 떴다 — 2026-08-20 사용자 신고) */
.form .row > .fld > .cell{position:relative}
.form .row > .fld > .cell > .ac{top:calc(100% + 2px);left:10px;width:340px;max-width:calc(100% - 20px)}
/* 공개 사이트와 같은 뜻 — 공식 자료가 없어 참고로 적은 값 */
.form .card .estv{color:#6b4fd8}

/* 연도별 매각가격 · 공시지가 한 표 (2026-08-20) */
.form .card table.pub.yearly td.ydeal span{display:block}
.form .card table.pub.yearly td.ydeal small{color:var(--dim);font-size:11px;margin-left:4px}
.form .card table.pub.yearly td.ydeal span.cancelled b{text-decoration:line-through;color:var(--red)}
.form .card table.pub.yearly tr.hasdeal{background:#f7fbff}
.form .card table.pub.yearly tr.hasdeal td.ydeal b{color:var(--blue)}

/* 필지 묶기 표 (2026-08-20) */
.form .card table.parcels td.c,.form .card table.parcels th.c{width:56px;text-align:center}
.form .card table.parcels td.pcadd{background:#fbfcfe;padding:10px 12px}
.form .card table.parcels td.pcadd input{display:inline-block;width:80px;margin:0 2px;padding:5px 8px;
  border:1px solid #d8dfe8;border-radius:6px;font-size:13px}
.form .card table.parcels td.pcadd b{font-size:12.5px;margin-right:8px}
.form .card table.parcels td.pcadd .dash{color:var(--dim);font-style:normal}
.form .card table.parcels td.pcadd .hint{display:inline-block;margin-left:10px}

/* 건물주 열람 고지 (2026-08-20) — 무엇이 기록되는지 먼저 말하고 누르게 한다 */
.form .card .ownergate{margin:0;padding:14px 16px;background:#fffaf5;border-top:1px solid var(--line)}
.form .card .ownergate.hidden{display:none}
.form .card .ownergate p{margin:0 0 6px;font-size:12.5px;line-height:1.65;color:#4a5563}
.form .card .ownergate .ohead{font-size:13px;color:var(--ink)}
.form .card .ownergate .ohead .rd{color:var(--red);margin-right:4px}
.form .card .ownergate .ofoot{margin:8px 0 0;padding-top:8px;border-top:1px dashed #e6ddd2;color:var(--ink)}
.form .card .ownergate a{color:var(--blue);text-decoration:underline}

/* ★[hidden] 은 UA 기본이 display:none 인데, .foot{display:flex} 같은 규칙이 이를 덮는다.
   그래서 저장줄이 다른 탭에서도 보였다(2026-08-20). 탭 감추기를 확실히 이긴다. */
.form [data-tab][hidden]{display:none !important}
.flash.warn{background:#fdf6e8;border-color:#e8d9b5;color:#7a6a3a}

/* 성과평가 (2026-08-20) */
.grid.perf thead tr:first-child th{background:#eef2f7;border-bottom:1px solid var(--line);
  text-align:center;font-size:12.5px}
.grid.perf thead tr:first-child th[rowspan]{text-align:left}
.grid.perf td.who small{display:block;color:var(--dim);font-size:11px}
.grid.perf td.r,.grid.perf th.r{text-align:right;font-variant-numeric:tabular-nums}
.grid.perf tfoot th{background:#f7f9fc;font-size:12.5px}
.grid.perf td.up{color:var(--green);font-weight:700}
.grid.perf td.down{color:var(--red);font-weight:700}
.notyet{margin:16px 0;padding:14px 16px;background:#fbfcfe;border:1px dashed var(--line);border-radius:10px}
.notyet h3{margin:0 0 6px;font-size:13.5px;color:#41505f}
.notyet p{margin:0;font-size:12.5px;color:var(--dim);line-height:1.7}
.grid.list.wide td.col-road small.corner{display:inline-block;margin-left:4px;padding:0 5px;
  border-radius:20px;background:#eaf1fb;color:var(--blue);font-size:10.5px;font-weight:700}
/* 메뉴 알림 뱃지 — 손님이 열었는데 아직 안 본 횟수 (2026-08-20) */
.nav nav a .nbadge{display:inline-block;margin-left:4px;min-width:16px;padding:0 5px;
  border-radius:20px;background:var(--red);color:#fff;font-size:10.5px;font-weight:800;
  font-style:normal;line-height:16px;text-align:center;vertical-align:1px}

/* 공유 링크 — 손님이 열어봤습니다 (2026-08-20) */
.newviews{margin:0 0 14px;padding:12px 14px;background:#f2f8ff;border:1px solid #cfe0fb;border-radius:10px}
.newviews h3{margin:0 0 8px;font-size:14px;color:var(--ink);display:flex;align-items:center;gap:8px}
.newviews h3 .cnt{background:var(--blue);color:#fff;border-radius:20px;padding:1px 9px;font-size:12px}
.newviews ul{margin:0;padding:0;list-style:none}
.newviews li{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 0;
  border-top:1px solid #dfeaf8;font-size:13px}
.newviews li:first-child{border-top:0}
.newviews li .to{color:var(--dim)}
.newviews li .n{font-weight:800;color:var(--blue)}
.newviews li .btn{margin-left:auto}
.newviews .hint{margin:8px 0 0;font-size:11.5px}

/* 투자지역 구 고르기 (2026-08-20) */
.gupick{margin:6px 10px 0;display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.gupick .lb2{font-size:11.5px;color:var(--dim);margin-right:4px}
.gupick .gu{border:1px solid var(--line);background:#fff;border-radius:20px;padding:2px 9px;
  font-size:11.5px;color:#41505f;cursor:pointer}
.gupick .gu:hover{background:#f3f7fd;border-color:#b9c6d8}
.gupick .gu.on{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:700}
/* 줄 안의 버튼은 칸 하나만 차지하고 내용만큼만 (첨부 [올리기] 가 전체 폭으로 늘어났다) */
.form .row > .btn{grid-column:span 1;justify-self:start;margin:0 10px}

/* 지번·건물명 밑줄 제거 (2026-08-20 사용자: "오히려 헷갈려요") — 줄 전체가 클릭이라 밑줄이 없어도 눌린다 */
.grid.list.wide td.bldg a.jb,.grid.list.wide td.bldg a.nm2{text-decoration:none}
.grid.list.wide td.bldg a.jb:hover,.grid.list.wide td.bldg a.nm2:hover{text-decoration:none;opacity:.75}

/* 내 매물 — 연락 주기 관리 (2026-08-20, 사용자 엑셀 대체) */
.grid.mine td.dday{white-space:nowrap;font-size:12.5px}
.grid.mine tr.over{background:#fff6f6}
.grid.mine tr.soon{background:#fffaf0}
.grid.mine tr.over td.dday b{color:var(--red)}
.grid.mine td.bd a{color:var(--ink)}
.grid.mine td.bd small{display:block;color:var(--dim);font-size:11.5px}
.grid.mine td.last small{display:block;color:var(--dim);font-size:11.5px;margin-top:2px}
.grid.mine td.quick{min-width:330px}
.grid.mine .qform{display:flex;gap:5px;align-items:center}
.grid.mine .qform input{flex:1;min-width:0;padding:5px 8px;border:1px solid #d8dfe8;
  border-radius:6px;font-size:12.5px}
.grid.mine .rd{color:var(--red)} .grid.mine .og{color:var(--orange)}
.hint .rd{color:var(--red)} .hint .og{color:var(--orange)}

/* 협상 진행도 (2026-08-20 · 사용자 엑셀 `진행도` 칸) */
.form .card > .prog{border-top:1px solid var(--line)}
.form .card > .prog > h3{margin:0;padding:10px 14px;font-size:13px;font-weight:800;color:#41505f;
  background:#fbfcfe;border-bottom:1px solid var(--line)}
.form .card > .prog > h3 small{font-weight:500;color:var(--dim);font-size:11.5px;margin-left:8px}
.grid.mine th.pgh{width:230px}
.grid.mine td.pg{font-size:11.5px;line-height:1.6;max-width:250px}
.grid.mine td.pg span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.grid.mine td.pg i{display:inline-block;min-width:52px;color:var(--dim);font-style:normal;font-weight:700}
.grid.mine td.pg span.etc{color:var(--orange);white-space:normal}
.grid.mine td.ow b{font-size:12.5px}
.grid.mine td.ow small{margin-left:4px;font-size:11px}
.grid.mine td.ow .tel{display:block;font-size:11px;color:var(--blue)}
/* 오늘 할 일 — 지난 것은 경고보다 한 단계 세게 (2026-08-21) */
.todo .tcard.bad{background:#fff4f4;border-color:#f2c9c9}
.todo .tcard.bad b{color:var(--red)}
.dash2 .card > h2 .btn{margin-left:auto}
.dash2 .card > h2{display:flex;align-items:center;gap:8px}

/* ══════════════════════════════════════════════════════════════════
   모바일 메뉴 (2026-08-21)
   메뉴가 13개로 늘면서 폰에서는 앞 4개만 보이고 나머지는 화면 밖으로 잘렸다.
   가로로 밀면 보이긴 했지만 **밀 수 있다는 걸 모르면 못 찾는다** — 줄을 바꿔 다 보이게 한다.
   ══════════════════════════════════════════════════════════════════ */
@media (max-width: 820px){
  .nav{height:auto;min-height:0;padding:8px 12px 10px;align-items:flex-start;
       flex-wrap:wrap;overflow:visible;gap:6px}
  .nav .logo{width:100%;font-size:15px;margin-bottom:2px}
  .nav nav{flex-wrap:wrap;gap:8px 14px;width:100%}
  .nav nav a{white-space:nowrap;font-size:13.5px;padding:2px 0}
  /* 3줄이면 화면의 17%다 — 폰에서는 붙박이(sticky)를 풀어 스크롤하면 접히게 한다 */
  .nav{position:static}
}

/* 폰에서는 표 대신 카드 — 「내 매물」은 밖에서 "오늘 누구한테 전화하지"를 보는 화면이다.
   가로 스크롤 표는 폰에서 못 쓴다(글자마다 줄바꿈되고 뒤 칸은 잘렸다 · 2026-08-21). */
@media (max-width: 820px){
  .grid.mine thead{display:none}
  .grid.mine,.grid.mine tbody,.grid.mine tr,.grid.mine td{display:block;width:auto}
  .grid.mine tr{border:1px solid var(--line);border-radius:10px;margin:0 0 10px;
    padding:10px 12px;background:#fff}
  .grid.mine tr.over{background:#fff6f6;border-color:#f2c9c9}
  .grid.mine tr.soon{background:#fffaf0;border-color:#eddfc0}
  .grid.mine td{border:0;padding:3px 0;text-align:left !important}
  .grid.mine td::before{content:attr(data-l);display:inline-block;min-width:76px;
    color:var(--dim);font-size:11.5px;font-weight:600;vertical-align:top}
  .grid.mine td.bd,.grid.mine td.dday{display:inline-block;padding-right:10px}
  .grid.mine td.dday::before,.grid.mine td.bd::before{display:none}
  .grid.mine td.bd b{font-size:15px}
  .grid.mine td.bd small{display:inline;margin-left:4px}
  .grid.mine td.quick{margin-top:6px;min-width:0}
  .grid.mine td.quick::before{display:none}
  .grid.mine .qform{flex-wrap:wrap}
  .grid.mine .qform input{flex:1 1 100%;padding:8px 10px;font-size:13.5px}
  .grid.mine .qform .btn{flex:1 1 auto;padding:8px 0;text-align:center}
  .grid.mine td.pg span{white-space:normal}
  .grid.mine td.pg,.grid.mine td.ow{max-width:none}
  .grid.mine td.ow .tel{display:inline;margin-left:6px}
}

/* 폰의 매물 목록 — 좁은 폭을 체크박스가 먹지 않게 (2026-08-21)
   비교표는 앉아서 하는 일이라 폰에서는 감춘다. 선택(삭제)·★는 남긴다. */
@media (max-width: 820px){
  .grid.list.wide .cmpth,.grid.list.wide td.nogo:nth-child(2){display:none}
  .grid.list.wide th.c,.grid.list.wide td.c{padding:7px 4px}
  .grid.list.wide th.bldg-h,.grid.list.wide td.bldg{min-width:150px;max-width:170px}
  .grid.list.wide td.acts{min-width:110px;max-width:118px}
  .grid.list.wide td.acts .mini{font-size:10.5px;padding:2px 5px}
}

/* 폰에서는 주소 줄도 1열로 — .row.addr 의 2열 규칙이 뒤에 있어 이기고 있었다 (2026-08-21) */
@media (max-width: 900px){
  .form .row.addr{grid-template-columns:1fr}
  .form .row.addr > .fld{grid-column:1}
  .form .row > .fld > .cell{flex-wrap:wrap;gap:6px 8px}
  .form .row > .fld > .cell input{flex:1 1 40%;min-width:90px}
  .form .row > .fld > .cell .btn{flex:0 0 auto}
}

/* 폰: 폼 안의 표는 잘리지 말고 가로로 밀리게 (층별임대 표가 35px 넘쳐 [삭제]가 잘렸다) */
@media (max-width: 820px){
  .form .card table.grid{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .form .card table.grid > thead,.form .card table.grid > tbody,
  .form .card table.grid > tfoot{display:table;width:max-content;min-width:100%}
  .form .card table.kv{display:block;overflow-x:auto}
  .form .card table.kv > tbody{display:table;width:100%}
}

/* ── 내 매물: 남긴 직후 확인 (2026-08-22) ──
   전화·미팅을 남기면 기한이 밀려 그 줄이 목록 아래로 내려간다. 아무 표시가 없으면
   "눌렀는데 줄이 사라졌다"로 보인다. */
.donebar{background:#eaf7ee;border:1px solid #bfe3c9;color:#1c6b34;border-radius:9px;
  padding:10px 14px;font-size:13.5px;margin:0 0 14px}
.grid.mine tr.justdone > td{background:#fffbe6}
.grid.mine tr.justdone > td:first-child{box-shadow:inset 3px 0 0 #f0b429}

/* 상단 오른쪽 "누구로 로그인했나" + 로그아웃 (2026-08-22) */
.nav .who{display:flex;align-items:center;gap:10px}
.nav .who .logoutf{display:inline}
.nav .who .logoutf button{border:1px solid var(--line);background:#fff;color:var(--dim);
  border-radius:7px;padding:4px 9px;font-size:11.5px;font-weight:600;cursor:pointer}
.nav .who .logoutf button:hover{border-color:#c9d2dc;color:var(--ink)}

.nav .morebox .mall{margin-top:4px;padding-top:6px;border-top:1px solid var(--line)}
.nav .morebox .mall button{width:100%;text-align:left;background:none;border:0;cursor:pointer;
  padding:8px 10px;border-radius:7px;font:inherit;font-weight:600;font-size:13px;color:var(--red)}
.nav .morebox .mall button:hover{background:#fdf0f0}

/* ── 저장검색 (2026-08-22) ── */
.savedbar{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin:-4px 0 14px}
.savedchip{display:inline-flex;align-items:center;gap:2px;background:#eef4fd;border:1px solid #d6e4fa;
  border-radius:999px;padding:3px 4px 3px 11px;font-size:12.5px}
.savedchip a{color:var(--blue);font-weight:600}
.savedchip form{display:inline}
.savedchip button{border:0;background:none;color:#93a3b8;cursor:pointer;font-size:14px;
  line-height:1;padding:2px 6px;border-radius:999px}
.savedchip button:hover{background:#dbe7fa;color:var(--ink)}
.savedhint{color:var(--dim);font-size:12px}

/* 일괄 변경 (2026-08-22) */
.bulkbox{display:inline-flex;gap:5px;align-items:center}
.bulkbox select.xs{width:auto;padding:4px 8px;font-size:12px}

/* ── 실거래 알림 (2026-08-22) ── */
.sech{font-size:15px;margin:22px 0 10px;letter-spacing:-.3px}
.sech em{font-style:normal;color:var(--dim);font-size:12.5px;font-weight:600;margin-left:8px}
.digest{display:flex;flex-wrap:wrap;gap:8px}
.digest .dg{display:flex;align-items:baseline;gap:8px;background:#f7f9fc;border:1px solid var(--line);
  border-radius:9px;padding:8px 12px;font-size:13px}
.digest .dg b{font-size:13.5px}
.digest .dg .ppy{color:var(--blue);font-weight:600}
tr.unseen > td{background:#fffdf3}
tr.unseen > td:first-child{box-shadow:inset 3px 0 0 #f0b429}

/* 빈 칸의 "적어 두기"가 줄마다 반복돼 표가 시끄러웠다 → 옅은 + 하나로 (2026-08-22) */
.addlink{display:inline-block;width:20px;height:20px;line-height:19px;text-align:center;
  border:1px dashed #d5dde7;border-radius:6px;color:#b3bdc9;font-size:13px}
.addlink:hover{border-color:var(--blue);color:var(--blue);border-style:solid}
/* 실거래 알림: 새 표시는 **내 매물**에만 준다 — 주변 거래까지 노랗게 하면 급한 것이 안 보인다 */
.grid tr.unseen.near > td{background:transparent;box-shadow:none}

/* 내 매물: 금액이 "2,200억 / 원" 으로 쪼개지던 것 (2026-08-22) */
.grid.mine td.r{white-space:nowrap}

.tag.gray{background:#eef1f5;color:#6b7785}

/* 임대차 만기: "D-120" 이 두 줄로 쪼개지던 것 (2026-08-23) */
.grid td.dday{white-space:nowrap}

/* ── 오늘 할 일(콜 리스트) — 표가 아니라 처리하는 화면 (2026-08-23) ── */
.todaywrap{max-width:720px;margin:0 auto}
.todaytop{display:flex;align-items:baseline;gap:8px;margin:2px 0 14px;font-size:14px}
.todaytop b{font-size:17px}
.todaytop .tolist{margin-left:auto;font-size:12.5px}
.tcard-big{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px 26px;
  box-shadow:0 6px 20px rgba(16,32,56,.05)}
.tcard-big .kindtag{display:inline-block;font-size:11.5px;font-weight:700;padding:3px 9px;
  border-radius:999px;background:#eef2f7;color:#5a6674;margin-bottom:12px}
.tcard-big.kind-deal .kindtag{background:#fdecec;color:#b03434}
.tcard-big.kind-lease .kindtag{background:#fff3e0;color:#9a6412}
.tcard-big.kind-plan .kindtag{background:#e8f1fd;color:#1b56b3}
.tcard-big h1{font-size:21px;margin:0 0 14px;letter-spacing:-.4px}
.tcard-big .who{font-size:15px;margin-bottom:10px;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.tcard-big .detail{font-size:14.5px;margin:0 0 4px}
.tcard-big .sub{color:var(--dim);font-size:13px;margin:0}
.tcard-big .ownerbox{margin-top:16px;background:#fbfcfe;border:1px solid var(--line);
  border-radius:9px;padding:10px 13px;font-size:13.5px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.tcard-big .pastbox{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
.tcard-big .pasth{font-size:12px;color:var(--dim);font-weight:600;margin-bottom:7px}
.tcard-big .pastrow{display:flex;gap:8px;align-items:baseline;font-size:13px;padding:3px 0}
.tcard-big .actbar{margin-top:18px;border-top:1px solid var(--line);padding-top:16px}
.tcard-big .actbar input[name=body]{margin-bottom:10px}
.tcard-big .actbar .btns{display:flex;gap:8px;flex-wrap:wrap}
.tcard-big .actbar .btn{flex:1 1 auto;text-align:center;padding:11px}
.tcard-big .actbar .btn.ghost{color:var(--dim);flex:0 0 auto}
.upnext{margin-top:20px}
.upnexth{font-size:12.5px;color:var(--dim);font-weight:600;margin-bottom:8px}
.upnextrow{display:flex;gap:9px;align-items:baseline;padding:7px 2px;border-bottom:1px solid var(--line);
  font-size:13px}
.upnextrow .dim{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kindmini{font-size:11px;font-weight:700;padding:2px 7px;border-radius:999px;background:#eef2f7;
  color:#5a6674;flex:0 0 auto}
.kindmini.kind-deal{background:#fdecec;color:#b03434}
.kindmini.kind-lease{background:#fff3e0;color:#9a6412}
.kindmini.kind-plan{background:#e8f1fd;color:#1b56b3}
.upmore{font-size:12.5px;padding-top:8px}
.alldone{background:#fff;border:1px solid var(--line);border-radius:14px;padding:44px 26px;text-align:center}
.alldone .check{width:56px;height:56px;line-height:54px;border-radius:50%;background:#e9f7ee;
  color:#1c7a3e;font-size:28px;margin:0 auto 16px}
.alldone h1{font-size:19px;margin:0 0 8px}
.alldone .links{display:flex;gap:8px;justify-content:center;margin-top:20px;flex-wrap:wrap}
/* 일정·임장 */
.schadd{display:flex;gap:8px;flex-wrap:wrap}
.schadd select,.schadd input{width:auto;flex:0 1 auto}
.schadd input[name=title]{flex:1 1 240px}
.grid tr.done > td{opacity:.55}

.card.todo h2 .gostart{float:right;margin-top:-2px}

/* ── 내 계정 (2026-08-23) ── */
.card.acct{max-width:640px}
.card.acct h2{font-size:15px;margin:0 0 6px;display:flex;align-items:center;gap:8px}
.acctform{display:flex;flex-direction:column;gap:11px;max-width:340px;margin-top:12px}
.acctform label{font-size:12.5px;color:var(--dim);font-weight:600;display:flex;flex-direction:column;gap:5px}
.acctform label small{font-weight:500}
.acctform .btn{align-self:flex-start}
.secretbox{background:#f7f9fc;border:1px solid var(--line);border-radius:9px;padding:12px 14px;margin:12px 0}
.secretbox .skey{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px;
  letter-spacing:1.5px;word-break:break-all;margin-bottom:5px}
.errbar{background:#fdf0f0;border:1px solid #f2cfcf;color:#a33;border-radius:9px;
  padding:10px 14px;font-size:13.5px;margin:0 0 14px}
.nav .who a{color:var(--dim)}
.nav .who a:hover{color:var(--blue)}
.grid td.ua{font-size:11.5px;color:var(--dim)}
.tag.red{background:#fdecec;color:#b03434}
