/* ============================================================
   솔라리스 보드 — board.css
   board_Index.html에서 분리한 스타일시트 (2026-07-10 분리)
   [주의] Apps Script 배포 시에는 이 파일을 css.html로 감싸서
   <?!= include('css') ?> 패턴으로 인라인 삽입해야 함 (하단 참고)
   ============================================================ */

:root{
  /* ── 1단: primitive scale (영업관리 목업 Ds_a0f645 이식) ── */
  --blue-50:#EBF3FF; --blue-100:#C2DBFF; --blue-200:#85B8FF; --blue-300:#4794FF;
  --blue-400:#1A79FF; --blue-500:#0075FF; --blue-600:#005ECC; --blue-700:#004799;
  --gray-0:#FFFFFF; --gray-50:#F4F5F9; --gray-100:#ECEDF1; --gray-200:#CCCCCC;
  --gray-300:#DDDDDD; --gray-400:#999999; --gray-500:#757575; --gray-700:#333333; --gray-900:#111111;
  --green-500:#1A8A4F; --amber-500:#B7791F; --red-500:#E04444;
  --radius-button:6px; --radius-sm:8px; --radius-md:12px; --radius-lg:16px; --radius-full:9999px;
  --shadow-sm:0 1px 2px 0 rgba(0,0,0,.04); --shadow-md:0 2px 8px 0 rgba(0,0,0,.06); --shadow-lg:0 8px 24px 0 rgba(0,0,0,.10);
  /* ── 2단: semantic aliases (기존 변수명 유지 → 전체 자동 리스킨) ── */
  --blue:var(--blue-500); --blue-d:var(--blue-600); --blue-bg:var(--blue-50); --ink:#0F1633;
  --bg:#F4F6F9; --surface:var(--gray-0); --text:var(--gray-900); --muted:var(--gray-500); --faint:var(--gray-400);
  --line:var(--gray-100); --line-2:#F2F3F6;
  --ok:var(--green-500); --ok-bg:rgba(26,138,79,.12); --warn:var(--amber-500); --warn-bg:rgba(183,121,31,.12);
  --danger:var(--red-500); --danger-bg:rgba(224,68,68,.12); --info:var(--blue-500); --info-bg:var(--blue-50);
  --edit-bg:#EBF3FF;
}
*{box-sizing:border-box;}
body{margin:0; font-family:'Noto Sans KR',sans-serif; background:var(--bg); color:var(--text); -webkit-font-smoothing:antialiased;}
button{font-family:inherit; cursor:pointer;}

/* ===== 로그인 ===== */
.gate{min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px;
      background:radial-gradient(1200px 600px at 70% -10%, #E9F1FF 0%, var(--bg) 55%);}
.gate-card{background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:34px 30px;
      width:100%; max-width:380px; box-shadow:0 18px 50px rgba(15,17,72,.08);}
.logo{display:flex; align-items:center; gap:10px; margin-bottom:22px;}
.logo .mark{width:30px; height:30px; flex:none;}
.logo .t{font-size:18px; font-weight:900; letter-spacing:-.4px;}
.logo .t small{display:block; font-size:11px; font-weight:500; color:var(--muted); letter-spacing:0;}
.gate h2{font-size:17px; margin:0 0 4px;}
.gate p{font-size:13px; color:var(--muted); margin:0 0 20px; line-height:1.5;}
.fld{margin-bottom:12px;}
.fld label{display:block; font-size:12px; font-weight:500; color:var(--muted); margin-bottom:5px;}
.fld input{width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:9px; font-family:inherit; font-size:14px; color:var(--text);}
.fld input:focus{outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(0,123,255,.12);}
.btn{width:100%; padding:12px; border:none; border-radius:10px; font-size:15px; font-weight:700; background:var(--blue); color:#fff;}
.btn:active{background:var(--blue-d);} .btn:disabled{opacity:.5; cursor:default;}
.btn.ghost{background:#fff; color:var(--blue); border:1.5px solid var(--blue); margin-top:9px;}
.btn.kakao{display:block; text-align:center; text-decoration:none; background:#FEE500; color:#191600; box-sizing:border-box;}
.btn.kakao:active{background:#f2d900;}
.gate-card .errbox{background:var(--warn-bg); color:var(--warn); padding:10px 12px; border-radius:9px; font-size:13px; margin-bottom:12px; line-height:1.5;}
.gate .hint{font-size:11.5px; color:var(--faint); margin-top:14px; line-height:1.5;}
.claimbox{background:var(--info-bg); border:1px solid var(--info); color:#1E3A8A; padding:14px; border-radius:11px; margin-bottom:12px;}
.claimbox .cap{font-size:12px; margin-bottom:6px; line-height:1.5;}
.claimbox .num{font-size:24px; font-weight:900; letter-spacing:.5px; font-family:monospace; word-break:break-all;}
.claimbox .cp{width:auto; margin-top:10px; padding:8px 14px; font-size:13px; background:var(--info); color:#fff; border:none; border-radius:8px; font-weight:700;}

/* ===== 셸 (목업: 흰 사이드바) ===== */
.shell{display:flex; min-height:100vh;}
.side{width:240px; flex:none; background:var(--surface); color:var(--gray-500); display:flex; flex-direction:column; padding:24px 16px;
      box-shadow:inset -1px 0 0 var(--line);}
.side .logo{padding:6px 8px 24px;} .side .logo .t{color:var(--text);} .side .logo .t small{color:var(--faint);}
.nav-sec{font-size:10.5px; font-weight:700; color:var(--faint); letter-spacing:.6px; margin:14px 10px 6px;}
.nav{display:flex; align-items:center; gap:10px; width:100%; text-align:left; background:none; border:none; color:var(--gray-500);
     padding:11px 12px; border-radius:var(--radius-sm); font-size:14px; font-weight:500;}
.nav:hover{background:var(--gray-50); color:var(--text);}
.nav.on{background:var(--blue-bg); color:var(--blue); font-weight:700;}
.nav.off{opacity:.4; cursor:default;}
.nav .ic{width:18px; height:18px; flex:none;}
.nav .step2{margin-left:auto; font-size:9.5px; font-weight:700; background:var(--gray-100); color:var(--gray-500); padding:2px 6px; border-radius:var(--radius-button);}
.side-foot{margin-top:auto; padding:14px 10px 4px; border-top:1px solid var(--line); font-size:11.5px; color:var(--faint);}

.main{flex:1; min-width:0; display:flex; flex-direction:column;}
.topbar{height:64px; background:var(--surface); box-shadow:inset 0 -1px 0 var(--line); display:flex; align-items:center; justify-content:space-between; padding:0 32px; position:sticky; top:0; z-index:20;}
.topbar h1{font-size:16px; font-weight:700; margin:0; letter-spacing:-.2px;}
.topbar .meta{font-size:11.5px; color:var(--faint); margin-left:12px;}
.topbar .right{display:flex; align-items:center; gap:12px;}
.src{font-size:11.5px; font-weight:600; padding:4px 10px; border-radius:999px;}
.src.live{background:var(--ok-bg); color:var(--ok);} .src.sample{background:var(--warn-bg); color:var(--warn);}
.user{font-size:13px; color:var(--muted);} .user b{color:var(--text); font-weight:700;}
.logout{font-size:12.5px; color:var(--muted); background:none; border:1px solid var(--line); border-radius:8px; padding:6px 11px;}
.content{padding:22px; flex:1; overflow:auto;}

/* ===== 대시보드 ===== */
.dash-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px;}
.card{background:var(--surface); border:none; box-shadow:inset 0 0 0 1px var(--line); border-radius:var(--radius-lg); padding:24px;}
.card h3{font-size:16px; font-weight:700; margin:0 0 12px; color:var(--text); display:flex; align-items:center; gap:8px;}
.card h3 .when{margin-left:auto; font-size:11px; font-weight:500; color:var(--faint);}
.mini-cards{display:grid; grid-template-columns:repeat(4,1fr); gap:10px;}
.mini{box-shadow:inset 0 0 0 1px var(--line); border-radius:var(--radius-md); padding:12px 14px;}
.mini .lab{font-size:12px; color:var(--muted);}
.mini .num{font-size:26px; font-weight:900; margin-top:6px; line-height:1;}
.mini .delta{font-size:11px; margin-top:6px; font-weight:700;}
.delta.up{color:var(--ok);} .delta.down{color:var(--danger);} .delta.flat{color:var(--faint);}
.pipeline{display:grid; grid-template-columns:repeat(9,1fr); gap:8px; margin-bottom:16px;}
.pl{background:var(--surface); box-shadow:inset 0 0 0 1px var(--line); border-radius:var(--radius-md); padding:12px; cursor:pointer; position:relative; overflow:hidden; transition:box-shadow .12s ease;}
.pl:hover{box-shadow:inset 0 0 0 1px var(--blue), var(--shadow-sm);}
.pl .bar{position:absolute; left:0; top:0; bottom:0; width:4px;}
.pl .lab{font-size:11px; color:var(--muted); white-space:nowrap;}
.pl .num{font-size:22px; font-weight:900; margin-top:6px; line-height:1;}
.shortcuts{display:flex; gap:10px; flex-wrap:wrap;}
.sc{flex:1; min-width:150px; box-shadow:inset 0 0 0 1px var(--line); border-radius:var(--radius-md); padding:14px 16px; background:var(--surface);
    font-size:13px; font-weight:600; color:var(--text); text-decoration:none; display:flex; align-items:center; gap:8px; transition:box-shadow .12s ease;}
.sc:hover{box-shadow:inset 0 0 0 1px var(--blue); color:var(--blue-d);}
.period-sel{margin-left:auto; font-size:12px; padding:6px 10px; box-shadow:inset 0 0 0 1px var(--line); border:none; border-radius:var(--radius-sm); background:#fff; color:var(--text);}

/* ===== 필터/테이블 ===== */
.panel{background:var(--surface); box-shadow:inset 0 0 0 1px var(--line); border-radius:var(--radius-lg); padding:16px 20px; margin-bottom:16px;}
.filters{display:flex; flex-wrap:wrap; gap:10px 14px; align-items:flex-end;}
.f{display:flex; flex-direction:column; gap:6px;}
.f label{font-size:11.5px; color:var(--muted); font-weight:700;}
.f input,.f select{padding:9px 11px; border:none; box-shadow:inset 0 0 0 1px var(--gray-200); border-radius:var(--radius-sm); font-family:inherit; font-size:13px; background:#fff; color:var(--text); min-width:120px;}
.f input:focus,.f select:focus{outline:none; box-shadow:inset 0 0 0 1px var(--blue), 0 0 0 3px rgba(0,117,255,.12);}
.f.search input{min-width:200px;}
.filters .reset{padding:9px 16px; background:var(--gray-50); color:var(--muted); border:none; box-shadow:inset 0 0 0 1px var(--line); border-radius:var(--radius-sm); font-size:13px; font-weight:700; align-self:flex-end;}

.ptabs{display:flex; gap:6px; align-items:center; margin-bottom:12px; flex-wrap:wrap;}
.ptabs button{padding:7px 16px; border-radius:var(--radius-full); border:none; box-shadow:inset 0 0 0 1px var(--line); background:#fff; font-size:12.5px; font-weight:600; color:var(--muted);}
.ptabs button.on{background:var(--blue); box-shadow:none; color:#fff;}
.ptabs input{padding:7px 10px; border:none; box-shadow:inset 0 0 0 1px var(--gray-200); border-radius:var(--radius-sm); font-family:inherit; font-size:12.5px; color:var(--text);}
.ptabs .pt-meta{margin-left:auto; font-size:11.5px; color:var(--faint);}
.kstrip{display:grid; grid-template-columns:repeat(8,1fr); gap:10px; margin-bottom:16px;}
.kcard{background:var(--surface); box-shadow:inset 0 0 0 1px var(--line); border-radius:var(--radius-md); padding:14px 10px; text-align:center; cursor:pointer; transition:box-shadow .12s ease;}
.kcard:hover{box-shadow:inset 0 0 0 1px var(--blue), var(--shadow-sm);}
.kcard .lab{font-size:11.5px; color:var(--muted); font-weight:600; white-space:nowrap;}
.kcard .num{font-size:28px; font-weight:900; margin-top:6px; line-height:1;}
.kcard .dlt{font-size:11px; font-weight:700; color:#F97316; margin-top:6px; min-height:13px;}
@media (max-width:1100px){ .kstrip{grid-template-columns:repeat(4,1fr);} }

.tbl-wrap{background:var(--surface); box-shadow:inset 0 0 0 1px var(--line); border-radius:var(--radius-lg); overflow:hidden;}
.tbl-head{display:flex; align-items:center; justify-content:space-between; padding:14px 20px; border-bottom:1px solid var(--line);}
.tbl-head .cnt{font-size:13px; color:var(--muted);} .tbl-head .cnt b{color:var(--text);}
.scroll{overflow-x:auto;}
table{width:100%; border-collapse:collapse; font-size:13px; min-width:1000px;}
thead th{position:sticky; top:0; background:#FAFBFD; text-align:left; font-size:11.5px; font-weight:700; color:var(--muted);
         padding:10px 12px; border-bottom:1px solid var(--line); white-space:nowrap;}
thead th.c{text-align:center;}
tbody td{padding:11px 12px; border-bottom:1px solid var(--line-2); vertical-align:middle;}
tbody tr:hover{background:#FAFBFF; cursor:pointer;}
tbody tr:last-child td{border-bottom:none;}
.owner{font-weight:500; white-space:nowrap;}
.addr .road{color:var(--faint); font-size:11.5px; margin-top:2px;}
.nowrap{white-space:nowrap;}
.reg{display:flex; flex-direction:column;} .reg .who{font-weight:500;} .reg .sys{font-size:11px; color:var(--faint);}
.muted-cell{color:var(--faint);}
.rv{font-size:15px; text-align:center; width:44px;}
.rv.ok{color:var(--ok);} .rv.cond{color:var(--warn);} .rv.no{color:var(--danger);} .rv.none{color:#C6CDD6;}
.prod{display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:6px;
      background:var(--blue-bg); color:var(--blue-d); font-size:11.5px; font-weight:800;}
.badge{display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:700; height:26px; padding:0 10px; border-radius:var(--radius-button); white-space:nowrap;}
.badge .dot{width:8px; height:8px; border-radius:50%;}
.b-gray{background:rgba(153,153,153,.12); color:var(--gray-500);} .b-gray .dot{background:var(--gray-400);}
.b-blue{background:rgba(0,117,255,.10); color:var(--blue);} .b-blue .dot{background:var(--blue);}
.b-orange{background:var(--warn-bg); color:var(--warn);} .b-orange .dot{background:var(--warn);}
.b-purple{background:rgba(109,67,201,.12); color:#6D43C9;} .b-purple .dot{background:#6D43C9;}
.b-green{background:var(--ok-bg); color:var(--ok);} .b-green .dot{background:var(--ok);}
.b-red{background:var(--danger-bg); color:var(--danger);} .b-red .dot{background:var(--danger);}
.tag-dup{font-size:10.5px; font-weight:700; color:var(--danger); background:var(--danger-bg); padding:3px 8px; border-radius:var(--radius-button); margin-left:6px;}
.tag-grp{font-size:10.5px; font-weight:700; color:#6D43C9; background:rgba(109,67,201,.12); padding:3px 8px; border-radius:var(--radius-button); margin-left:6px;}
.chan-b{font-size:11px; font-weight:700; padding:4px 10px; border-radius:var(--radius-button); background:var(--blue); color:#fff; white-space:nowrap;}
.chan-b.ch-p{background:var(--ok);}
.chan-b.ch-m{background:var(--warn);}
.chan-b.ch-e{background:var(--gray-500);}
.tag-new{font-size:10px; font-weight:800; color:#fff; background:var(--blue); padding:3px 7px; border-radius:var(--radius-button); margin-left:6px; letter-spacing:.4px;}
.memodel{margin-left:auto; font-size:11px; color:var(--faint); background:none; border:1px solid var(--line); border-radius:6px; padding:2px 8px; flex:none;}
.memodel:hover{color:var(--danger); border-color:var(--danger);}
.empty{text-align:center; color:var(--muted); padding:54px 16px; font-size:14px;}

/* ===== 페이지네이션 ===== */
.pager{display:flex; align-items:center; justify-content:center; gap:14px; padding:12px; border-top:1px solid var(--line);}
.pager button{padding:7px 14px; border:none; box-shadow:inset 0 0 0 1px var(--line); background:#fff; border-radius:8px; font-size:12.5px; font-weight:600; color:var(--muted);}
.pager button:disabled{opacity:.4; cursor:default;}
.pager .pg{font-size:12.5px; color:var(--muted); font-weight:700;}

/* ===== 사이트 상세 (전체화면 + 상/하단 고정) ===== */
.det{display:flex; flex-direction:column; height:calc(100vh - 64px);}
.det-top{background:var(--surface); border-bottom:1px solid var(--line); padding:16px 32px 14px; flex:none; z-index:15;}
.det-top .r1{display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.back{background:none; border:1px solid var(--line); border-radius:8px; padding:6px 12px; font-size:13px; color:var(--muted); font-weight:600;}
.det-top .when{margin-left:auto; font-size:11.5px; color:var(--faint);}
.det-top .r2{display:flex; align-items:baseline; gap:10px; margin-top:10px; flex-wrap:wrap;}
.det-top .addr-main{font-size:18px; font-weight:900; letter-spacing:-.3px;}
.det-top .addr-sub{font-size:12.5px; color:var(--faint);}
.det-top .r3{display:flex; align-items:center; gap:14px; margin-top:7px; font-size:12.5px; color:var(--muted); flex-wrap:wrap;}
.det-top .rvline{font-weight:600;}
.det-body{flex:1; overflow-y:auto; padding:18px 22px 30px;}
.det-body .sec{max-width:860px; margin:0 0 14px;}
.sec h4{font-size:13.5px; font-weight:700; margin:0 0 4px;}
.sec .subcap{font-size:11.5px; color:var(--faint); margin-bottom:10px;}
.det-bottom{background:var(--surface); border-top:1px solid var(--line); padding:11px 22px; flex:none; display:flex; align-items:center; gap:12px; z-index:15;}
.savestate{font-size:12px; font-weight:700; padding:4px 10px; border-radius:999px;}
.savestate.saved{background:#EEF1F5; color:#5A6573;}
.savestate.dirty{background:var(--edit-bg); color:var(--info);}
.det-bottom .stage-sel{margin-left:auto; display:flex; align-items:center; gap:8px;}
.det-bottom select{padding:9px 10px; border:1px solid var(--line); border-radius:8px; font-family:inherit; font-size:13.5px; background:#fff;}
.det-bottom select.dirty{background:var(--edit-bg); border-color:var(--info);}
.savebtn{padding:11px 28px; border:none; border-radius:var(--radius-button); font-size:14px; font-weight:700; background:var(--blue); color:#fff; transition:background-color .12s ease;}
.savebtn:hover:not(:disabled){background:var(--blue-d);}
.savebtn:disabled{background:var(--gray-100); color:#fff;}

/* 상세 폼 */
.kv{display:grid; grid-template-columns:150px 1fr; gap:0;}
.kv .row{display:contents;}
.kv .k{font-size:12px; color:var(--muted); padding:9px 0; border-bottom:1px solid var(--line-2);}
.kv .v{font-size:13.5px; padding:7px 0; border-bottom:1px solid var(--line-2); display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.kv .v:last-of-type,.kv .k:last-of-type{border-bottom:none;}
.in{padding:9px 12px; border:none; box-shadow:inset 0 0 0 1px var(--gray-200); border-radius:var(--radius-sm); font-family:inherit; font-size:13px; background:#fff; min-width:180px; transition:box-shadow .12s ease;}
.in:focus{outline:none; background:#fff; box-shadow:inset 0 0 0 1px var(--blue), 0 0 0 3px rgba(0,117,255,.12);}
.in.dirty{background:var(--edit-bg); box-shadow:inset 0 0 0 1px var(--blue);}
.in.sm{min-width:100px; width:120px;}
.unit{font-size:12px; color:var(--faint);}
.rvpick{display:flex; gap:6px;}
.rvpick button{padding:8px 15px; border-radius:var(--radius-sm); border:none; box-shadow:inset 0 0 0 1px var(--line); background:#fff; font-size:12.5px; font-weight:600; color:var(--muted);}
.rvpick button.on-none{background:#EEF1F5; color:#3A4550; border-color:#C6CDD6;}
.rvpick button.on-ok{background:var(--ok-bg); color:var(--ok); border-color:var(--ok);}
.rvpick button.on-cond{background:var(--warn-bg); color:var(--warn); border-color:var(--warn);}
.rvpick button.on-no{background:var(--danger-bg); color:var(--danger); border-color:var(--danger);}
.rvpick.dirty button{box-shadow:0 0 0 3px rgba(37,99,235,.12);}
.flags{display:flex; flex-direction:column; gap:8px;}
.flag{display:flex; align-items:center; gap:9px; padding:9px 12px; border-radius:9px; font-size:13px; font-weight:600;}
.flag.hard{background:var(--danger-bg); color:var(--danger);}
.flag.soft{background:var(--warn-bg); color:var(--warn);}
.flag .why{font-weight:400; font-size:12px; opacity:.85;}
.ftag{display:inline-block; font-size:10.5px; font-weight:700; padding:2px 7px; border-radius:6px; margin-left:7px;}
.ftag.hard{background:var(--danger-bg); color:var(--danger);}
.ftag.soft{background:var(--warn-bg); color:var(--warn);}
.loglist,.memolist{display:flex; flex-direction:column; gap:0; font-size:12.5px;}
.logrow{display:flex; gap:10px; padding:8px 0; border-bottom:1px solid var(--line-2); flex-wrap:wrap;}
.logrow .at{color:var(--faint); white-space:nowrap;} .logrow .who{font-weight:600; white-space:nowrap;}
.logrow .what{color:var(--muted);} .logrow .what b{color:var(--text);}
.memoform{display:flex; gap:8px; margin-top:10px;}
.memoform textarea{flex:1; padding:9px 11px; border:1px solid var(--line); border-radius:9px; font-family:inherit; font-size:13px; resize:vertical; min-height:40px;}
.memoform button{padding:9px 18px; border:none; border-radius:9px; background:var(--ink); color:#fff; font-size:13px; font-weight:700; align-self:flex-end;}
.ledtbl{width:100%; min-width:0; font-size:12.5px;}
.ledtbl th{background:#FAFBFD; font-size:11px;}
.grpitem{display:flex; align-items:center; gap:12px; padding:10px 4px; border-bottom:1px solid var(--line-2); cursor:pointer; font-size:13px;}
.grpitem:hover{background:#FAFBFF;} .grpitem:last-child{border-bottom:none;}
.grpitem .a{font-weight:500; flex:1;}
.ordbtn{padding:8px 14px; border:1px dashed var(--line); border-radius:9px; background:#FAFBFD; color:var(--muted); font-size:12.5px; font-weight:600;}
.linkout{font-size:12.5px; color:var(--blue-d); font-weight:600; text-decoration:none;}
.linkout:hover{text-decoration:underline;}
.step2box{border:1px dashed var(--line); border-radius:10px; padding:14px; font-size:12.5px; color:var(--faint); background:#FAFBFD;}

@media (max-width:1100px){ .mini-cards{grid-template-columns:repeat(2,1fr);} .pipeline{grid-template-columns:repeat(3,1fr);} .dash-grid{grid-template-columns:1fr;} .kv{grid-template-columns:120px 1fr;} }
@media (max-width:760px){
  .side{position:fixed; left:0; top:0; bottom:0; z-index:50; transform:translateX(-100%); transition:.2s;}
  .side.open{transform:none;}
  .menu-toggle{display:inline-flex !important;}
  .content{padding:16px;}
  .det-body{padding:14px;}
}
.menu-toggle{display:none; align-items:center; justify-content:center; width:34px; height:34px; border:1px solid var(--line); border-radius:8px; background:#fff; font-size:17px; margin-right:6px;}

/* ===== 현장 사진 ===== */
.photo-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:10px;}
.photo-cell{aspect-ratio:1/1; border-radius:10px; overflow:hidden; box-shadow:inset 0 0 0 1px var(--line); background:var(--gray-50); cursor:zoom-in;}
.photo-cell img{width:100%; height:100%; object-fit:cover; display:block;}
.photo-src{font-size:10.5px; color:var(--faint); margin-top:3px; text-align:center;}
.lightbox{position:fixed; inset:0; background:rgba(0,0,0,.86); z-index:100; display:flex; align-items:center; justify-content:center; padding:24px;}
.lightbox img{max-width:100%; max-height:100%; border-radius:8px;}
.lb-x{position:absolute; top:16px; right:20px; color:#fff; font-size:26px; background:none; border:none;}
select.in{padding-right:34px;}

/* ===== 리드 요약 팝업 ===== */
.leadpop-dim{position:fixed; inset:0; background:rgba(0,0,0,.42); z-index:110; display:flex; align-items:center; justify-content:center; padding:24px;}
.leadpop{background:#fff; border-radius:14px; padding:22px 24px; width:100%; max-width:440px; box-shadow:var(--shadow-lg);}
.leadpop h4{margin:0 0 2px; font-size:15px; font-weight:800; letter-spacing:-.2px;}
.leadpop .sub{font-size:11.5px; color:var(--faint); margin-bottom:12px;}
.leadpop .rowkv{display:flex; gap:10px; padding:8px 0; border-bottom:1px solid var(--line-2); font-size:13px; line-height:1.5;}
.leadpop .rowkv .k{width:110px; flex:none; color:var(--muted); font-size:12px; padding-top:1px;}
.leadpop .rowkv:last-of-type{border-bottom:none;}
.leadpop .x{margin-top:14px; width:100%; padding:10px; border:none; border-radius:8px; background:var(--gray-50); box-shadow:inset 0 0 0 1px var(--line); color:var(--muted); font-weight:700; font-size:13px;}
.chan-b.clickable{cursor:pointer;}
.chan-b.clickable:hover{opacity:.85;}
