/* 시공견적(파트너센터 탭 · 공급사센터 · 관리자) 공용 — 대표님 화면 39장(10-13) 기준.
   모든 규칙은 .ztq 안에서만 걸린다(기존 portal.css 를 건드리지 않게). */
.ztq{--g:#1e5b47;--g2:#174a3a;--mint:#e8f3ee;--mint2:#f2f8f5;--line:#dfe7e3;--ink:#1f2925;--muted:#6b7570;--warn:#b7791f;--warnbg:#fdf3e1;
  --bad:#c0392b;--badbg:#fdecea;--blue:#2563c9;--bluebg:#eaf1fd;--violet:#7a4cc2;--violetbg:#f2ecfb;--white:#fff;--r:12px;
  color:var(--ink);font-size:14px;line-height:1.5;font-variant-numeric:tabular-nums}
.ztq *{box-sizing:border-box}
.ztq h1{font-size:24px;margin:0 0 4px;letter-spacing:-.02em}
.ztq h2{font-size:17px;margin:0;letter-spacing:-.01em}
.ztq h3{font-size:15px;margin:0}
.ztq p{margin:0}
.ztq .muted{color:var(--muted)}
.ztq .small{font-size:12.5px}
.ztq .num{font-variant-numeric:tabular-nums}
.ztq .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ztq .between{justify-content:space-between}
.ztq .stack{display:grid;gap:12px}
.ztq .grid2{display:grid;grid-template-columns:var(--cols,minmax(0,1fr) minmax(0,1fr));gap:14px}
.ztq .grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ztq .grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:900px){.ztq .grid2,.ztq .grid3{grid-template-columns:minmax(0,1fr)}.ztq .grid4{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 레이아웃: 왼쪽 본문 + 오른쪽 지도 (파트너) */
.ztq-split{display:grid;grid-template-columns:minmax(0,560px) minmax(0,1fr);gap:0;min-height:calc(100vh - 140px);background:var(--white);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.ztq-split.wide{grid-template-columns:minmax(0,760px) minmax(0,1fr)}
.ztq-left{padding:22px 22px 28px;overflow:auto;max-height:calc(100vh - 140px)}
.ztq-right{position:relative;background:#eef2ef;min-height:420px}
.ztq-map{position:absolute;inset:0}
.ztq-map-note{position:absolute;right:14px;bottom:14px;background:var(--white);border-radius:999px;padding:7px 14px;font-size:12.5px;box-shadow:0 2px 10px rgba(0,0,0,.12)}
/* 지도 위 카드는 오른쪽 위 조작 단추(「일반/위성」 약 114px + 오른쪽 14px)와 겹치지 않게 — 카드 왼쪽 16 + 사이 12 + 단추 칸 144 = 172(2차에서 90 → 172) */
.ztq-map-card{position:absolute;left:16px;top:16px;max-width:min(320px,calc(100% - 172px));background:var(--white);border-radius:14px;padding:16px;box-shadow:0 6px 24px rgba(0,0,0,.14);display:grid;gap:8px;z-index:2}
.ztq-map-empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:13px}
@media (max-width:1000px){.ztq-split,.ztq-split.wide{grid-template-columns:minmax(0,1fr)}.ztq-left{max-height:none}.ztq-right{min-height:300px}}

/* 공급사·관리자 레이아웃 */
.ztq-page{min-height:100vh;background:#f5f7f6}
.ztq-top{display:flex;align-items:center;gap:18px;padding:14px 24px;background:var(--white);border-bottom:1px solid var(--line)}
.ztq-top .logo{font-weight:800;font-size:22px;color:#c8102e;letter-spacing:-.04em;text-decoration:none}
.ztq-top .svc{font-weight:700;color:#c8102e}
.ztq-top .sp{flex:1}
.ztq-bar{display:flex;align-items:center;gap:14px;padding:10px 24px;background:var(--mint2);border-bottom:1px solid var(--line)}
.ztq-bar b{font-size:20px;color:var(--g2)}
/* 휴대폰(375): 머리 줄이 넘치지 않게 접는다 */
@media (max-width:560px){.ztq-top{flex-wrap:wrap;gap:8px 12px;padding:10px 16px}.ztq-top nav.row{gap:12px!important}.ztq-bar{flex-wrap:wrap;gap:4px 10px;padding:8px 16px}.ztq-bar b{font-size:18px}}
.ztq-body{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;padding:18px 24px;max-width:1440px;margin:0 auto}
@media (max-width:900px){.ztq-body{grid-template-columns:minmax(0,1fr);padding:12px 16px}}
.ztq-nav{display:grid;gap:6px;align-content:start}
.ztq-nav button{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:11px 14px;border:0;background:none;border-radius:10px;font:inherit;font-size:15px;color:var(--ink);cursor:pointer;text-align:left}
.ztq-nav button[aria-current="page"]{background:var(--g);color:#fff;font-weight:600}
.ztq-nav button:hover:not([aria-current="page"]){background:var(--mint)}
.ztq-nav .cnt{font-size:13px;opacity:.85}

/* 카드·패널 */
.ztq .card{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:grid;gap:10px;min-width:0}
.ztq .card.soft{background:var(--mint2);border-color:transparent}
.ztq .card.sel{border-color:var(--g);box-shadow:inset 0 0 0 1px var(--g)}
.ztq .note{display:flex;gap:10px;align-items:flex-start;background:var(--mint);border-radius:10px;padding:12px 14px;font-size:13px}
.ztq .note.warn{background:var(--warnbg);color:#7a4f0c}
.ztq .note.bad{background:var(--badbg);color:var(--bad)}
.ztq .note b{display:block;font-size:14px;color:inherit}
.ztq .ico{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* 숫자 칸 */
.ztq .stat{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:grid;gap:4px}
.ztq .stat span{font-size:13px;color:var(--muted)}
.ztq .stat b{font-size:24px;font-weight:700;overflow-wrap:anywhere}
.ztq .stat{position:relative;min-width:0}
.ztq .stat.has-ic{padding-right:58px}
.ztq .stat .si{position:absolute;right:12px;top:12px;width:36px;height:36px;border-radius:50%;background:var(--mint);color:var(--g2);display:grid;place-items:center}
.ztq .stat.warn .si{background:var(--warnbg);color:var(--warn)}
.ztq .stat.bad .si{background:var(--badbg);color:var(--bad)}
.ztq .stat.blue .si{background:var(--bluebg);color:var(--blue)}
.ztq .stat small{font-size:12px}
@media (max-width:420px){.ztq .stat b{font-size:20px}.ztq .stat.has-ic{padding-right:16px}.ztq .stat .si{display:none}}
.ztq .money3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--mint2);border-radius:var(--r);overflow:hidden}
.ztq .money3>div{padding:14px 16px;display:grid;gap:4px;border-left:1px solid var(--line)}
.ztq .money3>div:first-child{border-left:0}
.ztq .money3 span{font-size:12.5px;color:var(--muted)}
.ztq .money3 b{font-size:22px;color:var(--g2)}
@media (max-width:640px){.ztq .money3{grid-template-columns:minmax(0,1fr)}.ztq .money3>div{border-left:0;border-top:1px solid var(--line)}}

/* 칩·배지 */
.ztq .chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:12.5px;font-weight:600;white-space:nowrap;background:var(--mint);color:var(--g2)}
.ztq .chip.warn{background:var(--warnbg);color:var(--warn)}
.ztq .chip.bad{background:var(--badbg);color:var(--bad)}
.ztq .chip.blue{background:var(--bluebg);color:var(--blue)}
.ztq .chip.violet{background:var(--violetbg);color:var(--violet)}
.ztq .chip.grey{background:#eef0ef;color:#555}
.ztq .lock{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;color:var(--g2);background:var(--mint);padding:3px 9px;border-radius:999px}

/* 버튼·입력 */
.ztq .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 16px;border:1.5px solid var(--g);border-radius:10px;background:var(--white);color:var(--g2);font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
.ztq .btn.primary{background:var(--g);color:#fff}
.ztq .btn.ghost{border-color:var(--line);color:var(--ink)}
.ztq .btn.danger{border-color:var(--bad);color:var(--bad)}
.ztq .btn.block{width:100%}
.ztq .btn:disabled{opacity:.45;cursor:not-allowed}
.ztq .btn:focus-visible,.ztq button:focus-visible,.ztq input:focus-visible,.ztq select:focus-visible,.ztq textarea:focus-visible{outline:2px solid var(--g);outline-offset:2px}
.ztq .link{background:none;border:0;padding:0;color:var(--g2);text-decoration:underline;font:inherit;cursor:pointer}
.ztq label.f{display:grid;gap:6px;font-weight:600;font-size:13.5px}
.ztq input[type=text],.ztq input[type=number],.ztq input[type=date],.ztq input[type=search],.ztq input[type=tel],.ztq select,.ztq textarea{width:100%;min-height:42px;padding:8px 12px;border:1px solid #cfd8d4;border-radius:10px;font:inherit;background:var(--white);color:var(--ink)}
.ztq textarea{min-height:84px;resize:vertical}
.ztq .seg{display:flex;flex-wrap:wrap;gap:8px}
.ztq .seg button,.ztq .seg label{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 16px;border:1px solid #cfd8d4;border-radius:10px;background:var(--white);font:inherit;cursor:pointer}
.ztq .seg [aria-pressed="true"],.ztq .seg label:has(input:checked){border-color:var(--g);background:var(--mint);color:var(--g2);font-weight:600}
.ztq .seg input{accent-color:var(--g)}
.ztq .seg.fill [aria-pressed="true"]{background:var(--g);color:#fff}
.ztq .check{display:flex;gap:8px;align-items:flex-start;font-size:13.5px}
.ztq .check input{width:18px;height:18px;accent-color:var(--g);margin-top:1px}

/* 단계 표시 */
.ztq .steps{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}
.ztq .steps .st{display:flex;align-items:center;gap:6px;color:var(--muted)}
.ztq .steps .st i{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#dfe5e2;color:#fff;font-style:normal;font-weight:700;font-size:12px}
.ztq .steps .st.on{color:var(--g2);font-weight:700}
.ztq .steps .st.on i,.ztq .steps .st.done i{background:var(--g)}
.ztq .steps .bar{flex:1;min-width:16px;height:1px;background:var(--line)}
.ztq .steps .bar.done{height:2px;background:var(--g)}
.ztq .steps .st.on.warn{color:#c2410c}
.ztq .steps .st.on.warn i{background:#fff;border:2px solid #e07a1f;color:#c2410c}
.ztq .steps .nm{display:grid;gap:0}
.ztq .steps .nm small{font-size:11.5px;color:var(--muted);font-weight:400}

/* 표 */
.ztq .tw{overflow-x:auto}
.ztq table{border-collapse:collapse;width:100%;font-size:13.5px}
.ztq th,.ztq td{padding:10px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.ztq th{background:var(--mint2);font-size:12.5px;color:var(--muted);font-weight:600}
.ztq td.r,.ztq th.r{text-align:right}
.ztq td.c,.ztq th.c{text-align:center}
.ztq .kv{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 18px;font-size:13.5px}
.ztq .kv dt{color:var(--muted)}
.ztq .kv dd{margin:0;min-width:0;overflow-wrap:anywhere}
.ztq .sum{display:grid;gap:6px}
.ztq .sum div{display:flex;justify-content:space-between;gap:12px}
.ztq .sum .tot{background:var(--mint);border-radius:8px;padding:10px 12px;font-weight:700;color:var(--g2)}
.ztq .big{font-size:30px;font-weight:800;letter-spacing:-.02em}

/* 견적 카드 목록 */
.ztq .qcard{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:var(--r);background:var(--white)}
.ztq .qcard.on{border-color:var(--g);box-shadow:inset 0 0 0 1px var(--g)}
.ztq .qcard .av{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--mint);font-weight:700;color:var(--g2)}
.ztq .rcard{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:var(--r);background:var(--white)}
.ztq .rcard .thumb{width:72px;height:72px;border-radius:8px;background:linear-gradient(135deg,#e9efe9,#d8e3dd);display:grid;place-items:center;color:var(--g2);font-weight:700}
@media (max-width:560px){.ztq .rcard{grid-template-columns:minmax(0,1fr)}.ztq .rcard .thumb{display:none}}

/* 사진 */
.ztq .photos{display:flex;gap:10px;flex-wrap:wrap}
.ztq .photo{width:132px;display:grid;gap:4px;font-size:12px;text-align:center;color:var(--muted)}
.ztq .photo .im{position:relative;width:132px;height:96px;border-radius:8px;background:#e9eeeb center/cover no-repeat;border:1px solid var(--line)}
.ztq .photo .tag{position:absolute;left:6px;bottom:6px;max-width:calc(100% - 12px);background:rgba(20,30,26,.72);color:#fff;font-style:normal;font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ztq .addph{width:132px;height:96px;border:1.5px dashed #b9c8c1;border-radius:8px;display:grid;place-items:center;color:var(--g2);font-weight:600;cursor:pointer;background:var(--white)}
.ztq .files{display:grid;gap:6px}
.ztq .file{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:8px 12px;border:1px solid var(--line);border-radius:8px;font-size:13px}
.ztq .file>span{min-width:0;overflow-wrap:anywhere}
.ztq .file>span .ico{width:16px;height:16px;vertical-align:-3px;color:var(--muted)}
.ztq .file>button{flex:none}

/* 이력 */
/* 진행 기록처럼 .tl 밖에 홀로 놓인 .ev(시각 | 내용)도 점·세로줄 타임라인으로 — 좁으면 시각이 위로 */
.ztq .ev{position:relative;display:grid;grid-template-columns:118px minmax(0,1fr);gap:2px 12px;align-items:start;padding:0 0 14px 26px;min-width:0}
.ztq .ev::before{content:"";position:absolute;left:0;top:3px;width:14px;height:14px;border-radius:50%;background:var(--g);box-shadow:0 0 0 3px var(--mint)}
.ztq .ev::after{content:"";position:absolute;left:6px;top:21px;bottom:-13px;width:2px;background:var(--line)}
.ztq .ev:last-child::after{display:none}
.ztq .ev>div{min-width:0;overflow-wrap:anywhere}
@media (max-width:520px){.ztq .ev{grid-template-columns:minmax(0,1fr)}}
@container (max-width:520px){.ztq .ev{grid-template-columns:minmax(0,1fr)}}
.ztq .tl{display:grid;gap:12px;position:relative}
.ztq .tl .ev{display:grid;grid-template-columns:20px minmax(0,1fr);gap:10px;padding:0}
.ztq .tl .ev::before{content:none}
.ztq .tl .ev::after{left:6px;top:21px;bottom:-12px}
.ztq .tl .ev:last-child::after{display:none}
.ztq .tl .dot{width:14px;height:14px;border-radius:50%;background:var(--g);margin-top:3px;position:relative;z-index:1}
.ztq .tl .dot.off{background:#c9d2ce}
.ztq .tl .dot.now{background:#fff;border:3px solid #e07a1f}
.ztq .tl .dot.warn{background:#e07a1f}
.ztq .tl .dot.bad{background:var(--bad)}
.ztq .tl .ev.is-now>div>b{color:#c2410c}
/* 점 안에 ✓·번호(check / numbers 옵션) */
.ztq .tl.marks .ev{grid-template-columns:24px minmax(0,1fr)}
.ztq .tl.marks .dot{width:22px;height:22px;margin-top:0;display:grid;place-items:center;color:#fff;font-size:11.5px;font-weight:700;line-height:1}
.ztq .tl.marks .dot.now{color:#c2410c;border-width:2px}
.ztq .tl.marks .dot.off{background:#fff;border:2px solid #cfd8d4;color:#8a948f}
.ztq .tl.marks .ev::after{left:10px;top:24px}
/* 「시각 | 내용」 두 칸(cols 옵션) — 좁으면 한 칸 */
.ztq .tl.cols .ev>div{display:grid;grid-template-columns:128px minmax(0,1fr);column-gap:12px;align-items:start}
.ztq .tl.cols .ev>div>.t{grid-row:1/span 2;padding-top:1px}
@media (max-width:520px){.ztq .tl.cols .ev>div{grid-template-columns:minmax(0,1fr)}.ztq .tl.cols .ev>div>.t{grid-row:auto}}
@container (max-width:520px){.ztq .tl.cols .ev>div{grid-template-columns:minmax(0,1fr)}.ztq .tl.cols .ev>div>.t{grid-row:auto}}

/* 브랜드 격자 */
.ztq .brands{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.ztq .brands button{min-height:40px;border:1px solid #cfd8d4;border-radius:8px;background:var(--white);font:inherit;font-size:13.5px;cursor:pointer;padding:4px}
.ztq .brands button[aria-pressed="true"]{background:var(--g);color:#fff;border-color:var(--g)}
@media (max-width:560px){.ztq .brands{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 알림·모달 */
.ztq-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:#1f2925;color:#fff;padding:12px 18px;border-radius:10px;font-size:14px;z-index:9999;max-width:min(560px,90vw);box-shadow:0 6px 24px rgba(0,0,0,.25)}
.ztq-modal{position:fixed;inset:0;background:rgba(20,30,26,.45);display:grid;place-items:center;z-index:9000;padding:16px}
.ztq-modal .box{background:#fff;border-radius:16px;max-width:620px;width:100%;max-height:90vh;overflow:auto;padding:24px;display:grid;gap:14px}
.ztq-modal .box{position:relative}
.ztq-modal .box>.x{position:absolute;top:10px;right:10px;width:36px;height:36px;border:0;border-radius:8px;background:none;color:var(--muted);display:grid;place-items:center;cursor:pointer;padding:0}
.ztq-modal .box>.x:hover{background:var(--mint2);color:var(--ink)}
.ztq-modal .box>.x .ico{width:20px;height:20px}
.ztq-modal .box>h2:first-of-type{padding-right:34px}
@media (max-width:420px){.ztq-modal{padding:10px}.ztq-modal .box{padding:18px 16px}}
.ztq-pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--mint2,#f2f8f5);border-radius:10px;padding:12px 14px;max-height:55vh;overflow:auto;font-size:14px;line-height:1.6}
.ztq .empty{padding:28px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--r)}
.ztq .empty.ic{display:grid;justify-items:center;gap:6px;padding:26px 16px}
.ztq .empty.ic b{color:var(--ink);font-size:14.5px}
.ztq .empty .ico.lg{width:46px;height:46px;stroke-width:1.5;color:#9fb1a9;margin-bottom:2px}
.ztq .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.ztq .pager{display:flex;gap:6px;justify-content:center;align-items:center;margin-top:10px}
.ztq .pager button{min-width:34px;height:34px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}
.ztq .pager button[aria-current="page"]{border-color:var(--g);color:var(--g2);font-weight:700}
.ztq .pager{flex-wrap:wrap}
.ztq .pager button:disabled{opacity:.4;cursor:default}
.ztq .pager .rng{margin-left:8px;white-space:nowrap}
.ztq .filters{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;background:var(--mint2);padding:12px;border-radius:var(--r)}
.ztq .filters>*{min-width:140px}
.ztq .tabs{display:flex;gap:6px;flex-wrap:wrap}
.ztq .tabs button{min-height:38px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit;cursor:pointer}
.ztq .tabs button[aria-pressed="true"]{background:var(--g);color:#fff;border-color:var(--g);font-weight:600}

/* 실제 파트너센터는 왼쪽 메뉴(250px) 때문에 본문이 좁다 — 화면 폭이 아니라 「본문 폭」으로 지도 칸을 아래로 내린다(10-13 실화면 확인) */
#tradeQuoteView { container-type: inline-size; }
@container (max-width: 980px) {
  .ztq-split { grid-template-columns: minmax(0, 1fr); }
  .ztq-left { max-height: none; }
  .ztq-right { min-height: 320px; }
}
@container (max-width: 1240px) {
  .ztq-split.wide { grid-template-columns: minmax(0, 1fr); }
  .ztq-split.wide .ztq-left { max-height: none; }
  .ztq-split.wide .ztq-right { min-height: 320px; }
}
.ztq .ztq-row { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 10px; align-items: center; }
@container (max-width: 520px) { .ztq .ztq-row { grid-template-columns: minmax(0, 1fr); gap: 6px; } }
@media (max-width: 520px) { .ztq .ztq-row { grid-template-columns: minmax(0, 1fr); gap: 6px; } }

/* 화면별 비율(--cols)도 좁으면 한 줄로 — 공급사·관리자 페이지(본문 폭이 곧 화면 폭) */
@media (max-width:900px){.ztq .grid2{grid-template-columns:minmax(0,1fr)}}
@container (max-width: 700px){.ztq .grid2{grid-template-columns:minmax(0,1fr)}}

/* 화면 대조 보강(10-13): 홈 카드 사진 · 제품 견본 · 알림 종 · 바로가기 */
.ztq .rcard .thumb[data-ztq-img]{background-size:cover;background-position:center;color:transparent}
.ztq .sw{width:44px;height:44px;border-radius:8px;flex:none;background:linear-gradient(135deg,#efe7dc,#d9c7ae);background-size:cover;background-position:center;display:grid;place-items:center;font-size:12px;color:#7a6650;font-weight:700}
.ztq .pcard{display:flex;gap:10px;align-items:center;text-align:left;cursor:pointer}
.ztq .ztq-bell{position:relative;padding:8px 10px;min-height:0}
.ztq .ztq-bell .dot{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;border-radius:999px;background:#c2410c;color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center;padding:0 4px}
.ztq .links{display:grid;grid-template-columns:repeat(var(--cols,2),minmax(0,1fr));gap:8px}
.ztq .links>button{display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left}
.ztq .todo{margin:0;padding-left:18px;display:grid;gap:4px}
@media (max-width:560px){.ztq .links{grid-template-columns:minmax(0,1fr)}}

/* ── 10-13 저녁 고치기: 공통 도구(zp-trade-core.js) 짝 ── */
/* hidden 속성이 위 display 규칙(.dot{display:grid} 등)에 덮이지 않게 — 종 빨간 점이 늘 보이던 결함 */
.ztq .ztq-bell .dot[hidden]{display:none}
.ztq [hidden]{display:none!important}

/* 지도 조작 단추(Z.map 기본): 오른쪽 위 「일반/위성」 · ＋/－ · 내 위치 */
.ztq-map-canvas{width:100%;height:100%}
.ztq-mapctl{position:absolute;right:14px;top:14px;z-index:3;display:grid;gap:10px;justify-items:end}
.ztq-mapctl button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.ztq-mapctl button:disabled{opacity:.5;cursor:progress}
.ztq-mapctl button:focus-visible{outline:2px solid var(--g,#1e5b47);outline-offset:2px}
.ztq-mapctl .mt{display:flex;background:#fff;border-radius:999px;padding:3px;box-shadow:0 2px 10px rgba(0,0,0,.16)}
.ztq-mapctl .mt button{min-height:34px;padding:0 14px;border:0;border-radius:999px;background:none;font-size:13px;font-weight:600;color:var(--ink,#1f2925)}
.ztq-mapctl .mt button[aria-pressed="true"]{background:var(--g,#1e5b47);color:#fff}
.ztq-mapctl .zm{display:grid;background:#fff;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.16);overflow:hidden}
.ztq-mapctl .zm button{width:40px;height:40px;border:0;background:none;display:grid;place-items:center;color:var(--ink,#1f2925)}
.ztq-mapctl .zm button+button{border-top:1px solid var(--line,#dfe7e3)}
.ztq-mapctl .me{width:40px;height:40px;border:0;border-radius:50%;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.16);display:grid;place-items:center;color:var(--g2,#174a3a)}
.ztq-mapctl .ico{width:20px;height:20px}
.ztq-me-dot{width:16px;height:16px;border-radius:50%;background:#2563c9;border:3px solid #fff;box-shadow:0 0 0 6px rgba(37,99,201,.22),0 1px 4px rgba(0,0,0,.3)}
/* 좁은 화면(본문 560 이하): 종류 단추를 세로로, 지도 위 카드는 지도 아래로 내려 지도를 가리지 않게 */
@media (max-width:560px){
  .ztq-mapctl .mt{flex-direction:column;border-radius:12px}
  .ztq-mapctl .mt button{min-height:36px;padding:0 8px;border-radius:9px}
  .ztq-right{display:flex;flex-direction:column}
  .ztq-right .ztq-map{position:relative;inset:auto;height:300px;flex:none}
  .ztq-right .ztq-map-card{position:relative;left:auto;top:auto;max-width:none;margin:12px;box-shadow:none;border:1px solid var(--line)}
}
@container (max-width:560px){
  .ztq-mapctl .mt{flex-direction:column;border-radius:12px}
  .ztq-mapctl .mt button{min-height:36px;padding:0 8px;border-radius:9px}
  .ztq-right{display:flex;flex-direction:column}
  .ztq-right .ztq-map{position:relative;inset:auto;height:300px;flex:none}
  .ztq-right .ztq-map-card{position:relative;left:auto;top:auto;max-width:none;margin:12px;box-shadow:none;border:1px solid var(--line)}
}

/* 번호 단계(Z.stepList / Z.stepCard): done ✓ · now 강조 · todo 흐림 · warn/bad ! */
.ztq .ztq-stepcard{display:grid;gap:12px;min-width:0}
.ztq .ztq-stepcard .sc-h{display:flex;align-items:center;gap:8px}
.ztq .ztq-stepcard .sc-h .ico{color:var(--g2);width:20px;height:20px}
.ztq .ztq-stepcard .sc-f{display:flex;gap:6px;align-items:flex-start;border-top:1px solid var(--line);padding-top:10px}
.ztq .ztq-stepcard .sc-f .ico{width:16px;height:16px;margin-top:1px}
.ztq .ztq-sl{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.ztq .ztq-sl li{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:start;min-width:0}
.ztq .ztq-sl li>i{position:relative;z-index:1;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:700;font-size:13px;line-height:1;background:#fff;border:1.5px solid #cfd8d4;color:#8a948f}
.ztq .ztq-sl li>div{display:grid;gap:2px;min-width:0;padding-top:4px;overflow-wrap:anywhere}
.ztq .ztq-sl li:not(:last-child)::after{content:"";position:absolute;left:13px;top:30px;bottom:-14px;width:2px;background:repeating-linear-gradient(to bottom,#cfd8d4 0 4px,transparent 4px 8px)}
.ztq .ztq-sl li.s-done:not(:last-child)::after{background:var(--g)}
.ztq .ztq-sl li.s-done>i{background:var(--g);border-color:var(--g);color:#fff}
.ztq .ztq-sl li.s-now>i{background:var(--g2);border-color:var(--g2);color:#fff;box-shadow:0 0 0 4px var(--mint)}
.ztq .ztq-sl li.s-now>div>b{color:var(--g2)}
.ztq .ztq-sl li.s-todo>div>b{color:var(--muted);font-weight:600}
.ztq .ztq-sl li.s-warn>i{border:2px solid #e07a1f;color:#c2410c}
.ztq .ztq-sl li.s-warn>div>b{color:#c2410c}
.ztq .ztq-sl li.s-bad>i{background:var(--bad);border-color:var(--bad);color:#fff}
.ztq .ztq-sl li.s-bad>div>b{color:var(--bad)}
.ztq .ztq-sl .tag{justify-self:start;display:inline-flex;padding:1px 8px;border-radius:999px;font-size:11.5px;font-weight:600;background:var(--mint);color:var(--g2)}
.ztq .ztq-sl li.s-warn .tag{background:var(--warnbg);color:var(--warn)}
.ztq .ztq-sl li.s-bad .tag{background:var(--badbg);color:var(--bad)}
.ztq .ztq-sl li.s-todo .tag{background:#eef0ef;color:#555}
/* 가로(row 옵션): 원 아래 이름, 원끼리 선으로 잇는다 */
.ztq .ztq-sl.row{display:flex;gap:0;align-items:flex-start}
.ztq .ztq-sl.row li{flex:1 1 0;grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center;gap:6px}
.ztq .ztq-sl.row li>div{padding-top:0;justify-items:center}
.ztq .ztq-sl.row .tag{justify-self:center}
.ztq .ztq-sl.row li:not(:last-child)::after{left:calc(50% + 17px);right:calc(-50% + 17px);top:13px;bottom:auto;width:auto;height:2px;background:repeating-linear-gradient(to right,#cfd8d4 0 4px,transparent 4px 8px)}
.ztq .ztq-sl.row li.s-done:not(:last-child)::after{background:var(--g)}
@media (max-width:520px){
  .ztq .ztq-sl.row{display:grid;gap:14px}
  .ztq .ztq-sl.row li{grid-template-columns:28px minmax(0,1fr);justify-items:stretch;text-align:left;gap:10px}
  .ztq .ztq-sl.row li>div{padding-top:4px;justify-items:start}
  .ztq .ztq-sl.row .tag{justify-self:start}
  .ztq .ztq-sl.row li:not(:last-child)::after{left:13px;right:auto;top:30px;bottom:-14px;width:2px;height:auto;background:repeating-linear-gradient(to bottom,#cfd8d4 0 4px,transparent 4px 8px)}
  .ztq .ztq-sl.row li.s-done:not(:last-child)::after{background:var(--g)}
}
@container (max-width:520px){
  .ztq .ztq-sl.row{display:grid;gap:14px}
  .ztq .ztq-sl.row li{grid-template-columns:28px minmax(0,1fr);justify-items:stretch;text-align:left;gap:10px}
  .ztq .ztq-sl.row li>div{padding-top:4px;justify-items:start}
  .ztq .ztq-sl.row .tag{justify-self:start}
  .ztq .ztq-sl.row li:not(:last-child)::after{left:13px;right:auto;top:30px;bottom:-14px;width:2px;height:auto;background:repeating-linear-gradient(to bottom,#cfd8d4 0 4px,transparent 4px 8px)}
  .ztq .ztq-sl.row li.s-done:not(:last-child)::after{background:var(--g)}
}

/* 금액 칸 줄(Z.moneyRow) · 「(부가세 포함)」(Z.vat) */
.ztq .vat{font-size:12px;font-weight:400;color:var(--muted)}
/* 금액 글자 크기는 칸 폭에 맞춰 줄인다(--c = 실제 칸 수, 100cqw = 줄 전체 폭). cqw 를 모르는 브라우저는 18px */
.ztq .ztq-money{--c:var(--n,3);container-type:inline-size;display:grid;grid-template-columns:repeat(var(--c),minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.ztq .ztq-money>div{background:var(--white);padding:14px 14px;display:grid;gap:4px;align-content:start;min-width:0}
.ztq .ztq-money .lb{font-size:13px;color:var(--muted)}
.ztq .ztq-money .vat{display:block}
.ztq .ztq-money b{font-size:18px;font-size:clamp(14px,calc((100cqw / var(--c) - 30px) / 6.2),22px);color:var(--g2);letter-spacing:-.01em;overflow-wrap:anywhere}
.ztq .ztq-money>.t-bad b{color:var(--bad)}
.ztq .ztq-money>.t-ink b{color:var(--ink)}
@media (max-width:640px){.ztq .ztq-money{--c:1}.ztq .ztq-money.n4{--c:2}}
@container (max-width:640px){.ztq .ztq-money{--c:1}.ztq .ztq-money.n4{--c:2}}
@media (max-width:359px){.ztq .ztq-money.n4{--c:1}}

/* 라벨-값 표(Z.kvTable) · 상태 점(Z.state) */
.ztq .ztq-kvt{border:1px solid var(--line);border-radius:10px;border-collapse:separate;border-spacing:0;overflow:hidden;font-size:13.5px}
.ztq .ztq-kvt th,.ztq .ztq-kvt td{padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.ztq .ztq-kvt th{width:38%;background:var(--mint2);color:var(--muted);font-size:13px;font-weight:500}
.ztq .ztq-kvt td{overflow-wrap:anywhere;min-width:0}
.ztq .ztq-kvt td.strong{font-weight:700;font-size:15px}
.ztq .ztq-kvt tr:last-child>*{border-bottom:0}
.ztq .sdot{display:inline-flex;align-items:center;gap:6px;font-size:13px}
.ztq .sdot::before{content:"";width:9px;height:9px;border-radius:50%;background:#b8c2bd;flex:none}
.ztq .sdot.s-done::before{background:var(--g)}
.ztq .sdot.s-wait::before{background:#e0a21f}
.ztq .sdot.s-bad::before{background:var(--bad)}
.ztq .sdot.s-now::before{background:var(--blue)}

/* 「~ 보기 ›」(Z.more) · 글자 수(data-ztq-count) · 점 목록(Z.bullets) */
.ztq .btn.more{gap:8px}
.ztq .link.more{text-decoration:none;font-weight:600}
.ztq .link.more:hover{text-decoration:underline}
.ztq .ztq-count{justify-self:end;font-weight:400;font-size:12px}
.ztq .bul{margin:4px 0 0;padding-left:18px;display:grid;gap:2px}
.ztq .note .bul{font-size:12.5px}

/* ── 파트너 화면(zp-trade-partner.js) 10-13 저녁 고침 — 모두 .ztq .p-… ── */
.ztq .p-back{text-decoration:none;color:inherit;justify-self:start;display:inline-flex;align-items:center;gap:2px;font-size:13.5px}
.ztq .p-back .ico{width:16px;height:16px}
/* 화면 1 안내 띠(공구 아이콘 · 「시공견적 시작 ›」) */
.ztq .p-cta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;background:var(--mint);border-radius:12px;padding:12px 16px;margin-bottom:14px}
.ztq .p-cta-ic{width:44px;height:44px;border-radius:50%;background:#fff;color:var(--g);display:grid;place-items:center;flex:none}
.ztq .p-cta-ic .ico{width:22px;height:22px}
.ztq .p-cta-t{display:grid;gap:2px;flex:1 1 200px;min-width:0}
.ztq .p-cta-t b{font-size:15px}
.ztq .p-cta .btn{margin-left:auto}
/* 큰 완료 표시(화면 7·10·13·14) */
.ztq .p-hero{display:grid;grid-template-columns:56px minmax(0,1fr);gap:14px;align-items:center}
.ztq .p-hero-ic{width:56px;height:56px;border-radius:50%;background:var(--g);color:#fff;display:grid;place-items:center}
.ztq .p-hero-ic .ico{width:28px;height:28px;stroke-width:2.6}
.ztq .p-hero-ic.o{background:#fff;border:3px solid var(--g);color:var(--g)}
@media (max-width:420px){.ztq .p-hero{grid-template-columns:44px minmax(0,1fr);gap:10px}.ztq .p-hero-ic{width:44px;height:44px}.ztq .p-hero h1{font-size:20px}}
/* 요청 유형 라디오 모양(○ / ✓) */
.ztq .p-rd{width:20px;height:20px;border-radius:50%;border:1.5px solid #b9c4bf;display:inline-grid;place-items:center;flex:none;background:#fff}
.ztq .p-rd.on{background:var(--g);border-color:var(--g);color:#fff}
.ztq .p-rd .ico{width:13px;height:13px;stroke-width:3}
/* 검색칸 돋보기 */
.ztq .p-search{position:relative;display:block;min-width:0}
.ztq .p-search>.ico{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.ztq .p-search input{padding-left:38px}
.ztq .p-psearch{flex:1 1 200px;max-width:280px}
/* 고른 아파트 카드(건물 아이콘 · ✓) · 검색 결과 */
.ztq .p-cx{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center}
.ztq .p-cxic{width:40px;height:40px;border-radius:50%;background:#fff;color:var(--g2);display:grid;place-items:center}
.ztq .p-ok{width:28px;height:28px;border-radius:50%;background:var(--g);color:#fff;display:grid;place-items:center}
.ztq .p-ok .ico{width:16px;height:16px;stroke-width:3}
.ztq .p-cxopt{text-align:left;cursor:pointer;padding:10px 14px;gap:2px;font:inherit}
/* 라벨 왼쪽 입력칸 · 단위 상자(동 · 호) */
.ztq .p-fld{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;font-weight:600;font-size:13.5px;min-width:0}
.ztq .p-unit{display:flex;min-width:0}
.ztq .p-unit input{border-radius:10px 0 0 10px;min-width:0}
.ztq .p-unit i{font-style:normal;display:grid;place-items:center;padding:0 12px;border:1px solid #cfd8d4;border-left:0;border-radius:0 10px 10px 0;background:var(--mint2);color:var(--muted);font-weight:500}
/* 아래 단추 줄(이전 | 다음) — 좁아도 두 칸 */
.ztq .p-btns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:12px}
.ztq .p-btns.half{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
/* 지도 위 카드 */
.ztq .p-edit{text-decoration:none;width:32px;height:32px;border-radius:8px;display:inline-grid;place-items:center;color:var(--muted)}
.ztq .p-edit:hover{background:var(--mint2);color:var(--g2)}
.ztq .p-cardit{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;font-size:13.5px}
.ztq .p-cardit>span:last-child{min-width:0;overflow-wrap:anywhere}
.ztq .p-cardrow{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;border-top:1px solid var(--line);padding-top:8px}
.ztq .p-cardrow .ico{width:18px;height:18px;color:var(--g2)}
.ztq .p-cardfoot{display:flex;gap:6px;align-items:center;border-top:1px solid var(--line);padding-top:8px}
.ztq .p-cardfoot .ico{width:15px;height:15px}
.ztq .p-pill{display:flex;gap:6px;align-items:center;font-size:12.5px;color:var(--muted);background:var(--mint2);border-radius:999px;padding:6px 12px;justify-self:start}
.ztq .p-pill .ico{width:15px;height:15px}
.ztq .p-sch{display:flex;align-items:center;gap:8px}
.ztq .p-sch .ico{color:var(--g2);width:20px;height:20px}
/* 제품 카드 선택 표시(고른 카드 초록 테두리 + ✓, 안 고른 카드 ○) */
.ztq .p-pcard.on{border-color:var(--g);box-shadow:inset 0 0 0 1px var(--g);background:var(--mint2)}
.ztq .p-mk{width:22px;height:22px;border-radius:50%;border:1.5px solid #b9c4bf;display:grid;place-items:center;flex:none;background:#fff}
.ztq .p-pcard.on .p-mk{background:var(--g);border-color:var(--g);color:#fff}
.ztq .p-mk .ico{width:14px;height:14px;stroke-width:3}
.ztq .p-item{gap:8px}
.ztq .p-itemh{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center}
.ztq .p-qty{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ztq .p-qty input{max-width:130px}
.ztq .p-qty select{max-width:96px}
.ztq .p-manual{text-decoration:none;display:inline-flex;gap:4px;align-items:center;font-weight:600}
.ztq .p-sumchip{justify-self:start;font-size:14px;padding:8px 14px;white-space:normal}
.ztq .p-ta{display:grid;gap:4px;min-width:0}
.ztq .ztq-row.p-top{align-items:start}
.ztq .p-fchip{max-width:100%;padding:6px 10px}
/* 확인 화면 번호 원(①②③ · ④ 진하게) */
.ztq .p-no{border-radius:50%;width:26px;height:26px;justify-content:center;padding:0}
.ztq .p-no.on{background:var(--g);color:#fff}
/* 견적 비교: 목록 | 상세(닫기 X) · 선택할 수 없는 견적은 흐리게 */
.ztq .p-cmp{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}
.ztq .p-cmp.one{grid-template-columns:minmax(0,1fr)}
@media (max-width:900px){.ztq .p-cmp{grid-template-columns:minmax(0,1fr)}}
@container (max-width:700px){.ztq .p-cmp{grid-template-columns:minmax(0,1fr)}}
.ztq .qcard.p-off{background:#f6f7f6}
.ztq .qcard.p-off>.av,.ztq .qcard.p-off>div>b,.ztq .qcard.p-off>div>.row{opacity:.55}
.ztq .p-unav{color:var(--warn);display:flex;gap:4px;align-items:center;margin-top:2px}
.ztq .p-unav .ico{width:15px;height:15px}
.ztq .p-qdetail{position:relative}
.ztq .p-qdetail>div.row:first-of-type{padding-right:38px}
.ztq .p-qx{position:absolute;top:10px;right:10px;width:34px;height:34px;border:0;border-radius:8px;background:none;color:var(--muted);display:grid;place-items:center;cursor:pointer}
.ztq .p-qx:hover{background:var(--mint2);color:var(--ink)}
.ztq .p-pre{white-space:pre-wrap}
@media (max-width:420px){.ztq .p-cmp .qcard{grid-template-columns:36px minmax(0,1fr)}.ztq .p-cmp .qcard .av{width:36px;height:36px}.ztq .p-cmp .qcard>.btn{grid-column:1/-1}}
@container (max-width:420px){.ztq .p-cmp .qcard{grid-template-columns:36px minmax(0,1fr)}.ztq .p-cmp .qcard .av{width:36px;height:36px}.ztq .p-cmp .qcard>.btn{grid-column:1/-1}}
/* 입금 화면: 본문이 좁아 지도(「정보 공개 기준」)가 아래로 내려가면 같은 안내를 본문에도 */
.ztq .p-narrow-only{display:none}
@container (max-width:1240px){.ztq .p-narrow-only{display:flex}}
.ztq .p-av{width:44px;height:44px;border-radius:50%;background:var(--mint);color:var(--g2);font-weight:700;font-size:16px;display:grid;place-items:center;flex:none}
.ztq .p-av.sm{width:30px;height:30px;font-size:14px}
.ztq .p-acct{font-size:18px;overflow-wrap:anywhere}
.ztq .p-amt{font-size:20px;color:var(--g2)}
/* 진행 공사: 공급사 카드(업체 | 담당자·연락처·시공 예정 | 전화·문자·채팅) */
.ztq .p-contact{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 16px;align-items:center}
.ztq .p-contact.full{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) auto}
.ztq .p-who{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;align-items:center;min-width:0}
.ztq .p-ckv{border-left:1px solid var(--line);padding-left:16px;gap:4px 14px}
.ztq .p-acts{display:flex;gap:8px;flex-wrap:wrap}
.ztq .p-act{flex-direction:column;min-height:56px;min-width:58px;padding:6px 10px;gap:2px;font-size:12.5px}
@media (max-width:640px){.ztq .p-contact,.ztq .p-contact.full{grid-template-columns:minmax(0,1fr)}.ztq .p-ckv{border-left:0;padding-left:0}}
@container (max-width:640px){.ztq .p-contact,.ztq .p-contact.full{grid-template-columns:minmax(0,1fr)}.ztq .p-ckv{border-left:0;padding-left:0}}
.ztq .p-disc{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px;align-items:center}
@media (max-width:640px){.ztq .p-disc{grid-template-columns:minmax(0,1fr)}}
@container (max-width:640px){.ztq .p-disc{grid-template-columns:minmax(0,1fr)}}
.ztq .p-payno{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:10px 14px}
.ztq .p-payno .more{margin-left:auto}
.ztq .p-deal{gap:12px}
.ztq .p-psum{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
/* 진행 기록(시각 | 내용 점·선) + 오른쪽 사진 묶음 */
.ztq .p-prog{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,284px);gap:14px;align-items:start}
/* 공급사 제출자료: 사진 | 문서 */
.ztq .p-subm{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:12px;align-items:start}
@media (max-width:640px){.ztq .p-prog,.ztq .p-subm{grid-template-columns:minmax(0,1fr)}}
@container (max-width:640px){.ztq .p-prog,.ztq .p-subm{grid-template-columns:minmax(0,1fr)}}
/* 「~ 보기 ›」 단추 묶음(공사완료자료·최종견적서·거래 자료) — 아이콘·글은 왼쪽, › 는 오른쪽 */
.ztq .p-docs .btn.more{justify-content:flex-start}
.ztq .p-docs .btn.more>span:not([aria-hidden]){flex:1;text-align:left}
/* 홈 아래 글자 링크(입금·예치 내역 | 완료 확인·지급승인 · 공급사로 견적 받기) */
.ztq .p-links{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:13px;color:var(--muted)}
.ztq .p-links .link{text-decoration:none;color:var(--ink);display:inline-flex;gap:6px;align-items:center}
.ztq .p-links .link:hover{text-decoration:underline}
.ztq .p-links .p-suplink{margin-left:auto;color:var(--g2);font-weight:600}
.ztq .p-supbtn{min-height:36px;padding:0 12px;font-size:13px}

/* ── 공급사센터(zp-trade-supplier.js) 10-13 저녁: 상세 화면 왼쪽(「< 공급사센터 홈」+현장 카드) · 견적 줄 · 등록 조건 표 ── */
.ztq .s-barlinks{margin-left:auto;display:flex;gap:16px;align-items:center}
.ztq .s-barlinks .link{text-decoration:none;font-weight:600;font-size:14px;color:var(--g2)}
.ztq .s-barlinks .link:hover{text-decoration:underline}
.ztq .s-top{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.ztq .s-search{display:flex;gap:6px;flex:1 1 220px;max-width:460px;min-width:0}
.ztq .s-search input{flex:1;min-width:0}
.ztq .s-top .ztq-bell{margin-left:auto}
.ztq .s-aside{align-content:start;min-width:0}
.ztq .s-main{min-width:0}
.ztq .s-sidetitle{font-size:24px}
.ztq .s-back{display:inline-flex;align-items:center;gap:4px;justify-self:start;text-decoration:none;color:var(--ink);font-weight:600}
.ztq .s-back .ico{width:16px;height:16px}
.ztq .s-mback{display:none}
.ztq .s-aside .ztq-nav button:disabled{opacity:.55;cursor:not-allowed}
.ztq .s-aside .ztq-nav button:disabled:hover{background:none}
.ztq .s-aside .ztq-nav button .ico{width:16px;height:16px;vertical-align:-3px}
.ztq .s-aside .ztq-nav button>span:first-child{display:inline-flex;align-items:center;gap:6px}
.ztq .s-co{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px}
.ztq .s-co>.ico{width:34px;height:34px;color:var(--g2);stroke-width:1.6}
.ztq .s-co>div{display:grid;gap:2px;min-width:0}
/* 상세 화면 틀: 왼쪽 300px(견적 작성은 5:7) · 좁으면 본문 먼저, 왼쪽 칸은 아래로(견적 작성은 요청 내용 먼저) */
.ztq .ztq-body.s-detail{grid-template-columns:300px minmax(0,1fr)}
.ztq .ztq-body.s-wide{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
@media (max-width:900px){
  .ztq .ztq-body.s-detail,.ztq .ztq-body.s-wide{grid-template-columns:minmax(0,1fr)}
  .ztq .s-detail:not(.s-keep)>.s-aside{order:2}
  .ztq .s-detail:not(.s-keep)>.s-main{order:1}
  .ztq .s-detail:not(.s-keep) .s-mback{display:inline-flex}
}
.ztq .s-band{flex-wrap:wrap;align-items:center}
.ztq .s-band>div{flex:1 1 240px;display:grid;gap:2px}
/* 현장 카드(목록·왼쪽 칸) — 누르면 그 현장으로 */
.ztq .s-site{position:relative;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;gap:3px;padding:14px 38px 14px 16px}
.ztq .s-site:hover{border-color:var(--g)}
.ztq .s-site>.ico:last-child{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--muted)}
.ztq .s-site .row{flex-wrap:wrap}
.ztq .s-sites{display:grid;gap:10px}
.ztq .s-sidetabs button{flex:1 1 auto;padding:0 10px}
.ztq .s-lockcard{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px}
.ztq .s-lockcard>.ico{color:var(--g2);width:22px;height:22px}
.ztq .s-lockcard>div{display:grid;gap:2px}
/* 버튼 줄 · 아래 제출 줄 */
.ztq .s-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
.ztq .s-actions.between{justify-content:space-between}
.ztq .s-submitbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:space-between}
.ztq .card.s-submitbar{display:flex}
.ztq .s-tot2{font-size:22px}
.ztq .s-usebtn{display:grid;gap:4px;justify-items:center;min-width:min(260px,100%)}
/* 등록(S0) · 심사 대기(S0b) */
.ztq .s-tlist{display:grid;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--white)}
.ztq .s-tlist>div{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:center;padding:10px 12px;border-top:1px solid var(--line)}
.ztq .s-tlist>div:first-child{border-top:0}
.ztq .s-tlist>div>div{display:grid;gap:1px;min-width:0;overflow-wrap:anywhere}
.ztq .s-tlist .ico{width:22px;height:22px;color:var(--g2)}
.ztq .s-ilist{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ztq .s-ilist li{display:flex;gap:8px;align-items:center}
.ztq .s-ilist .ico{color:var(--g2)}
.ztq .s-tcard{gap:10px}
.ztq .s-trow{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr) minmax(0,1.6fr) minmax(0,1.3fr);gap:10px;align-items:start}
.ztq .s-trowh{font-size:12.5px;color:var(--muted);font-weight:600;background:var(--mint2);padding:8px 12px;border-radius:8px}
.ztq .s-trow .s-lb{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.ztq .s-trow label.f{position:relative;font-weight:400}
.ztq .s-regcell{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center}
.ztq .s-regsum{min-height:42px;display:flex;align-items:center;padding:6px 12px;border:1px solid #cfd8d4;border-radius:10px;background:var(--white);font-size:13.5px;overflow-wrap:anywhere;min-width:0}
.ztq .s-regpick{gap:4px}
.ztq .s-regpick button{min-height:32px;padding:0 10px;font-size:12.5px}
.ztq .s-rmt{justify-self:start;font-size:13px}
@media (max-width:760px){
  .ztq .s-trow{grid-template-columns:minmax(0,1fr)}
  .ztq .s-trowh{display:none}
  .ztq .s-trow .s-lb{position:static;width:auto;height:auto;clip:auto;font-size:12.5px;font-weight:600}
  .ztq .s-regcell .s-lb{grid-column:1/-1}
}
.ztq .s-filerow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ztq .s-filerow>b{min-width:110px}
.ztq .s-filerow .file{flex:1 1 200px}
.ztq .s-hero{display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;align-items:center;padding:26px}
.ztq .s-hero>.ico{width:60px;height:60px;color:var(--g2);stroke-width:1.5}
.ztq .s-tcond{display:grid;grid-template-columns:28px minmax(0,.7fr) minmax(0,1.6fr);gap:10px;align-items:start;padding:10px 0;border-top:1px solid var(--line)}
.ztq .s-tcond:first-of-type{border-top:0}
.ztq .s-tcond>.ico{width:26px;height:26px;color:var(--g2)}
.ztq .s-tcond>div{display:grid;gap:2px}
.ztq .s-tasks{gap:8px}
.ztq .s-tasks .btn.more{justify-content:flex-start}
.ztq .s-tasks .btn.more>span:last-child{margin-left:auto}
@media (max-width:560px){
  .ztq .s-hero{grid-template-columns:minmax(0,1fr);padding:18px}
  .ztq .s-hero>.ico{width:44px;height:44px}
  .ztq .s-tcond{grid-template-columns:28px minmax(0,1fr)}
  .ztq .s-tcond>table{grid-column:1/-1}
}
/* 홈(S1) 거르기 */
.ztq .s-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ztq .s-filters select{flex:1 1 140px;width:auto;max-width:200px}
.ztq .s-sel{width:auto;max-width:170px}
@media (max-width:560px){.ztq .s-filters select{max-width:none}}
/* 견적 작성(S2): 요청 칸 아이콘 3칸 · 금액 줄(좁으면 두세 줄로 접힘) */
.ztq .s-ico3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:12px 8px}
.ztq .s-ico3>div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0 8px;align-items:center;padding:2px 10px;border-left:1px solid var(--line);min-width:0}
.ztq .s-ico3>div:first-child{border-left:0}
.ztq .s-ico3 .ico{grid-row:1/span 2;width:22px;height:22px;color:var(--g2)}
.ztq .s-ico3 b{overflow-wrap:anywhere}
@media (max-width:420px){.ztq .s-ico3{grid-template-columns:minmax(0,1fr);gap:8px}.ztq .s-ico3>div{border-left:0}}
.ztq .s-ql{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1.1fr) minmax(0,.9fr) minmax(0,1.4fr) minmax(0,1.3fr) 28px;grid-template-areas:"lb qt un pr am x";gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}
.ztq .s-ql>:nth-child(1){grid-area:lb}
.ztq .s-ql>:nth-child(2){grid-area:qt}
.ztq .s-ql>:nth-child(3){grid-area:un}
.ztq .s-ql>:nth-child(4){grid-area:pr}
.ztq .s-ql>:nth-child(5){grid-area:am;text-align:right;overflow-wrap:anywhere}
.ztq .s-ql>:nth-child(6){grid-area:x;justify-self:center}
.ztq .s-ql input[type=number]{text-align:right}
.ztq .s-ql input[aria-invalid="true"]{border-color:var(--bad);background:var(--badbg)}
.ztq .s-qlh{font-size:12.5px;color:var(--muted);font-weight:600;background:var(--mint2);padding:8px;border-radius:8px 8px 0 0;border-bottom:0}
.ztq .s-qlh>:nth-child(2),.ztq .s-qlh>:nth-child(4){text-align:right}
@media (max-width:560px){
  .ztq .s-ql{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 28px;grid-template-areas:"lb lb x" "qt un un" "pr am am"}
  .ztq .s-qlh{display:none}
}
.ztq .s-sumline{justify-content:flex-end;gap:18px}
.ztq .s-totalbox{background:var(--mint);border-radius:10px;padding:12px 16px}
.ztq .s-totalbox .big{color:var(--g2)}
/* 금액 칸 · 지급 상태 상자 · 보완 요청 */
.ztq .s-bigbox{background:var(--mint);border-radius:10px;padding:14px 16px;display:grid;gap:2px;min-width:0}
.ztq .s-bigbox .big{color:var(--g2);overflow-wrap:anywhere}
.ztq .s-bigbox b.small{color:var(--g2)}
.ztq .s-paybox{background:var(--warnbg);color:#7a4f0c;border-radius:10px;padding:12px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;align-items:center}
.ztq .s-paybox .chip{justify-self:end}
.ztq .s-paybox>b:last-child{justify-self:end}
.ztq .card.s-warncard{background:#fdf8ee;border-color:#f1dfb8}
.ztq .s-reqnum{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ztq .s-reqnum li{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:10px;align-items:center;overflow-wrap:anywhere}
.ztq .s-reqnum li>i{width:24px;height:24px;border-radius:50%;background:#e07a1f;color:#fff;display:grid;place-items:center;font-style:normal;font-weight:700;font-size:12px}
.ztq .s-reqnum .ok{color:var(--g2);font-size:12.5px;font-weight:600;white-space:nowrap}
.ztq .s-pre{white-space:pre-wrap;overflow-wrap:anywhere;border-top:1px solid #f1dfb8;padding-top:8px}
.ztq .s-rv{display:grid;gap:6px;padding:8px 0;border-top:1px solid var(--line)}
.ztq .s-rv .chip{justify-self:start}
.ztq .s-phcap{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.ztq .s-phcap label.f{flex:1 1 220px;font-weight:600}
.ztq .s-phcap>span{flex:1 1 200px;padding-bottom:10px}
.ztq .s-main .photo>.link{font-size:12px;justify-self:center}
.ztq .s-flow{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.ztq .s-flow .chip{white-space:normal}
/* 문의 번호 · 이용안내 */
.ztq .s-ref{justify-content:space-between;background:var(--mint2);border-radius:10px;padding:10px 14px}
.ztq .s-ref b{font-size:17px;overflow-wrap:anywhere}
.ztq .s-guide{margin:0;padding-left:18px;display:grid;gap:6px}

/* ── 관리자 화면(zp-trade-admin.js) 10-13 저녁 고치기 — 접두어 .a- ── */
.ztq .a-red{color:var(--bad)}
.ztq .a-g{color:var(--g2);font-weight:700}
.ztq .a-r{text-align:right}
.ztq .a-c{text-align:center}
.ztq .a-nw{white-space:nowrap}
.ztq .a-mt{margin-top:4px}
.ztq .a-end{justify-content:flex-end}
.ztq .a-wrapgap{flex-wrap:wrap;gap:10px}
.ztq .stat small strong{color:var(--g2);font-size:14px}
.ztq .tabs small{font-size:12px;font-weight:600}
.ztq .btn.a-sm{min-height:32px;padding:0 12px;font-size:13px;white-space:nowrap;gap:4px}
.ztq .btn.a-sm .ico,.ztq .btn.a-ic .ico{width:16px;height:16px}
.ztq .btn.a-ic{min-height:30px;padding:0 8px}
.ztq .btn.a-warnbtn{border-color:#e0a21f;background:var(--warnbg);color:#7a4f0c}
.ztq .a-back{display:inline-flex;align-items:center;gap:4px;justify-self:start;text-decoration:none;color:inherit;font-weight:600}
.ztq .a-back .ico{width:16px;height:16px}
.ztq .a-rv{width:auto;min-width:120px;max-width:180px}
/* 왼쪽: 처리 대기 · 접속 권한 · 번호로 찾기 */
.ztq .a-side{align-content:start}
.ztq .a-todo{gap:6px;padding:14px}
.ztq .a-todo h3{font-size:14.5px}
.ztq .a-todo-row{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit;font-size:13.5px;cursor:pointer;text-align:left;color:var(--ink)}
.ztq .a-todo-row .ico{width:18px;height:18px;color:var(--warn)}
.ztq .a-todo-row b{font-size:15px}
.ztq .a-todo-row.t-blue .ico,.ztq .a-todo-row.t-blue b{color:var(--blue)}
.ztq .a-todo-row.t-bad .ico,.ztq .a-todo-row.t-bad b{color:var(--bad)}
.ztq .a-role{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start}
.ztq .a-role>.ico{color:var(--g2);width:22px;height:22px}
.ztq .a-role>div{display:grid;gap:2px;min-width:0}
.ztq .a-gq{justify-content:flex-end;gap:6px;flex-wrap:nowrap}
.ztq .a-gq input{flex:1 1 auto;max-width:380px;min-width:0}
/* 조회 줄 검색칸 · 카드 안 검색 */
.ztq .filters .a-fq{flex:1 1 220px}
.ztq .a-search{display:flex;gap:6px;flex:1 1 220px;max-width:340px;min-width:0}
.ztq .a-search input{min-height:38px;min-width:0}
.ztq .a-search .btn{min-height:38px;padding:0 10px}
/* 운영 현황: 우선 처리할 업무 · 줄 목록 · 안내 한 줄 */
.ztq .a-tbar{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;background:var(--mint);border-radius:var(--r);padding:12px 14px}
.ztq .a-tbar-h{display:flex;gap:10px;align-items:center;min-width:170px}
.ztq .a-tbar-h>.ico{width:30px;height:30px;padding:6px;border-radius:50%;background:var(--g);color:#fff;stroke-width:3}
.ztq .a-tbar-h b{display:block;font-size:15px}
.ztq .a-tbar-btns{display:flex;flex-wrap:wrap;gap:8px;flex:1 1 auto;min-width:0}
.ztq .a-tbar-btns .btn{min-height:38px;padding:0 12px;font-size:13.5px;background:#fff;gap:6px}
.ztq .a-tbar-btns .btn .ico{width:16px;height:16px}
.ztq .a-tbar-btns .btn b{color:var(--bad)}
.ztq .a-tbar-btns .btn.danger{background:var(--badbg)}
.ztq .a-lines{display:grid}
.ztq .a-line{display:grid;grid-template-columns:20px minmax(0,1fr) auto 12px;gap:8px;align-items:center;padding:9px 4px;border:0;border-bottom:1px solid var(--line);background:none;font:inherit;font-size:13.5px;text-align:left;cursor:pointer;color:var(--ink)}
.ztq .a-line:last-child{border-bottom:0}
.ztq .a-line .ico{width:18px;height:18px;color:var(--g2)}
.ztq .a-line.t-warn .ico{color:var(--warn)}
.ztq .a-line.t-blue .ico{color:var(--blue)}
.ztq .a-line.t-bad .ico,.ztq .a-line.t-bad b{color:var(--bad)}
.ztq .a-line small{color:var(--bad);font-size:12px}
.ztq .a-line:hover{background:var(--mint2)}
.ztq .a-inote{display:flex;gap:6px;align-items:flex-start;color:var(--muted)}
.ztq .a-inote .ico{width:16px;height:16px;margin-top:2px;flex:none}
.ztq .a-inote.a-mint{background:var(--mint);color:var(--g2);border-radius:8px;padding:8px 10px}
/* 경고 띠를 누르는 단추로(공사·보완 「보완중 N건」) */
.ztq .a-notebtn{border:0;width:100%;text-align:left;font:inherit;cursor:pointer}
/* 입금 칸(견적·매칭 · 요청 상세 · 환불·입금 확인) */
.ztq .a-pay{margin-top:4px;line-height:1.5}
.ztq .a-acts-s{gap:4px;margin-top:6px}
/* 아래 단추 줄 */
.ztq .a-acts{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}
.ztq .a-acts>.sp{flex:1}
@media (max-width:560px){.ztq .a-acts .btn{flex:1 1 100%}.ztq .a-acts>.sp{display:none}.ztq .a-r{text-align:left}}
/* 공급사 심사 상세: 제출 서류 행 · 미리보기 · 첨부 자료 · 소개 */
.ztq .a-doc{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.ztq .a-doc .nm{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-width:0;overflow-wrap:anywhere}
.ztq .a-doc .nm>.ico{width:18px;height:18px;color:var(--muted)}
.ztq .a-doc .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
@media (max-width:560px){.ztq .a-doc{grid-template-columns:minmax(0,1fr)}.ztq .a-doc .acts{justify-content:flex-start}}
.ztq .a-prev{display:grid;place-items:center;align-content:center;gap:4px;min-height:170px;border-radius:10px;background:var(--mint2);text-align:center;color:var(--muted);padding:12px;overflow:hidden}
.ztq .a-prev>.ico{width:40px;height:40px;stroke-width:1.5}
.ztq .a-prev b{color:var(--ink)}
.ztq .a-prev img{max-width:100%;max-height:480px;border-radius:6px}
.ztq .a-prev iframe{width:100%;height:480px;border:0;background:#fff;border-radius:6px}
@media (max-width:560px){.ztq .a-prev iframe{height:360px}}
.ztq .a-att{display:grid;gap:6px;align-content:start;min-width:0}
.ztq .a-att>div{display:flex;gap:6px;align-items:center;flex-wrap:wrap;min-width:0;overflow-wrap:anywhere}
.ztq .a-att>div>.ico{width:16px;height:16px;color:var(--muted)}
.ztq .a-intro>p.card{white-space:pre-wrap;overflow-wrap:anywhere}
.ztq .a-pre{max-height:140px;font-size:13px;padding:8px 10px}
/* 세금계산서 안내 카드 · 지급건 거르기 표시 · 연결 이력 */
.ztq .a-ic2{display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;align-items:center}
.ztq .a-ic2>.ico{width:40px;height:40px;padding:9px;border-radius:50%;background:#fff;color:var(--g2)}
.ztq .a-fchip{display:inline-flex;gap:6px;align-items:center;padding:4px 6px 4px 12px;border-radius:999px;background:var(--bluebg);color:var(--blue);font-size:13px;font-weight:600;max-width:100%;min-width:0;white-space:normal}
.ztq .a-fchip button{display:grid;place-items:center;width:26px;height:26px;border:0;border-radius:50%;background:none;color:inherit;cursor:pointer}
.ztq .a-fchip .ico{width:14px;height:14px}
.ztq .a-chain{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.ztq .a-chain>.card{text-align:left;cursor:pointer;gap:2px;font:inherit;color:inherit;min-width:0;overflow-wrap:anywhere}
/* 지급: 큰 금액 줄 · 검토 결과 · 계좌번호 · 최종 확인 창 머리 */
.ztq .a-big{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;background:var(--mint);border-radius:8px;padding:12px 14px;font-weight:700;color:var(--g2)}
.ztq .a-big b{font-size:26px;letter-spacing:-.02em}
.ztq .a-rc{display:flex;flex-wrap:wrap;gap:8px 18px;padding:10px 12px;border:1px solid var(--line);border-radius:10px}
.ztq .a-ok{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600}
.ztq .a-ok .ico{width:20px;height:20px;padding:3px;border-radius:50%;background:var(--g);color:#fff;stroke-width:3}
.ztq .a-ok.no{color:var(--bad)}
.ztq .a-ok.no .ico{background:var(--bad)}
.ztq .a-acct{font-size:17px;letter-spacing:.04em;overflow-wrap:anywhere}
.ztq .a-mh{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px 14px;align-items:start;padding-right:34px}
.ztq .a-mh>.ico{width:40px;height:40px;color:var(--g2)}
.ztq .a-mh>div{display:grid;gap:2px;min-width:0}
@media (max-width:420px){.ztq .a-mh{grid-template-columns:minmax(0,1fr)}.ztq .a-mh>.ico{display:none}.ztq .a-big b{font-size:22px}}
.ztq .a-2btn .btn{min-width:0}

/* ════════ 2차(10-14) 추가분 시작 — 파트너 · 공급사센터 · 관리자/공용 순서 ════════
   기존 규칙과 같은 선택자 두 개는 끝에 다시 쓰지 않고 그 자리에 합쳤다:
   · .ztq-map-card 최대 폭(90 → 172, 지도 위 카드 첫 규칙 한 줄로 — 따로 있던 덮어쓰기 줄은 지움) · .ztq .a-fchip 줄바꿈(관리자 「지급건 거르기 표시」 줄)
   ※ 아래 두 줄은 .ztq 밖(파트너센터 메뉴·본문 틀)에 걸린다: .portal-menu .ztq-pmenu::after(NEW 표시) · html.ztq-booting .section-view(첫 화면 가림, 스크립트가 푼다) */
/* ── 파트너 2차(10-14, zp-trade-partner.js) ── */
/* 메뉴 「시공견적」 NEW 표시 — 글자가 아니라 CSS 로(portal.js 「최근 방문」 이름에 「NEW」 가 붙지 않게) */
.portal-menu .ztq-pmenu::after{content:"NEW";display:inline-block;margin-left:6px;padding:0 7px;border-radius:999px;background:#1e5b47;color:#fff;font-size:11px;font-weight:700;line-height:18px;vertical-align:1px}
/* 주소로 바로 열기·새로고침: 시공견적 화면을 열 때까지 첫 메뉴 화면을 가린다(스크립트가 늦어도 4초 안에 푼다) */
html.ztq-booting .section-view{visibility:hidden}
/* 같은 화면 다시 읽기: 지금 내용을 흐리게 둔다(「불러오는 중…」 중간 화면 대신) */
.ztq .ztq-split.p-busy{cursor:progress}
.ztq .ztq-split.p-busy>.ztq-left{opacity:.6;pointer-events:none}
/* 두 칸 중간 폭(p-mid): 왼쪽 최대 760 + 지도 최소 380 — 본문 980 이하에서만 한 칸(.wide 는 1240 이하에서 한 칸이라 노트북 폭에서 지도·카드가 맨 아래로 밀렸다) */
#tradeQuoteView .ztq-split.p-mid{grid-template-columns:minmax(0,760px) minmax(380px,1fr)}
@container (max-width:980px){#tradeQuoteView .ztq-split.p-mid{grid-template-columns:minmax(0,1fr)}}
@container (max-width:1100px){#tradeQuoteView .p-mid .p-cmp{grid-template-columns:minmax(0,1fr)}}
/* 「정보 공개 기준」: 지도 카드가 옆에 보이면 본문 사본은 숨기고, 한 칸(본문 980 이하)이면 본문 사본만 — 같은 글이 두 번 나오지 않게 */
#tradeQuoteView .p-mid .p-narrow-only{display:none}
@container (max-width:980px){#tradeQuoteView .p-mid .p-narrow-only{display:flex}#tradeQuoteView .p-mid .p-wide-only{display:none}}
/* 지도 위 카드가 「일반/위성」 단추 밑에 깔리지 않게 — 지도 칸이 좁은 폭(약 470 미만)이면 단추 줄 아래로 내린다 */
@container (min-width:981px) and (max-width:1030px){#tradeQuoteView .ztq-split:not(.p-mid):not(.wide) .ztq-map-card{top:64px}}
@container (min-width:981px) and (max-width:1230px){#tradeQuoteView .ztq-split.p-mid .ztq-map-card{top:64px}}
/* 홈: 상태 탭 숫자 동그라미(그림 P2 — 켜진 탭 흰 원, 꺼진 탭 회색 원) · 끝난 공사 접기 · 확인 필요 줄 */
.ztq .p-htabs button{display:inline-flex;align-items:center;gap:6px}
.ztq .p-htabs .p-cnt{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#a9b6b0;color:#fff;font-size:12px;font-weight:700;line-height:1}
.ztq .p-htabs button[aria-pressed="true"] .p-cnt{background:#fff;color:var(--g2)}
.ztq .p-done>summary{cursor:pointer;color:var(--muted);padding:6px 2px;font-weight:600}
.ztq .p-att{display:flex;gap:4px;align-items:flex-start;color:var(--bad)}
.ztq .p-att .ico{width:15px;height:15px;margin-top:1px}
/* 진행 공사 탭: 밑줄 탭(그림 P11) */
.ztq .tabs.p-otabs{gap:0;flex-wrap:nowrap;overflow-x:auto;border-bottom:1px solid var(--line)}
.ztq .tabs.p-otabs button{flex:1 0 auto;min-height:42px;padding:0 12px;border:0;border-bottom:3px solid transparent;border-radius:0;background:none;color:var(--ink);white-space:nowrap}
.ztq .tabs.p-otabs button[aria-pressed="true"]{background:none;color:var(--g2);border-bottom-color:var(--g);font-weight:700}
/* 진행 기록: 최신만 초록 점, 지난 기록은 회색(그림 P11) · 사진 아래 파일 이름은 감춤(읽기 도구에는 남음) */
.ztq .p-prog .ev::before{background:#b9c4bf;box-shadow:0 0 0 3px #f1f4f2}
.ztq .p-prog .ev:first-child::before{background:var(--g);box-shadow:0 0 0 3px var(--mint)}
.ztq .p-prog .photo{font-size:0;gap:0}
.ztq .p-prog .photo .tag{font-size:11.5px}
/* 처리 이력: 최신 항목은 초록(그림 P13), 지난 항목 회색 — 주황(경고 색) 대신 */
.ztq .p-hist .tl:not(.marks) .dot{background:#c9d2ce}
.ztq .p-hist .tl:not(.marks) .dot.now{background:var(--g);border:0;box-shadow:0 0 0 3px var(--mint)}
.ztq .p-hist .tl .ev.is-now>div>b{color:var(--g2)}
/* 단계표 「정보 공개」 앞 자물쇠(그림 P9) */
.ztq .steps .p-stlock{width:14px;height:14px;margin-right:-2px}
/* 지급승인 화면: 앞 회차 제출자료(접힘) */
.ztq .p-prev{border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.ztq .p-prev>summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--g2)}
.ztq .p-prev[open]{display:grid;gap:10px}

/* ── 공급사센터 10-14 2차: 좁은 화면 등록 · 심사 대기는 본문 먼저 · 관리자 보류 정산 계좌 칸 · 관리자 사유 「확인 완료」 ── */
@media (max-width:900px){
  .ztq .ztq-body.s-reg>.s-aside{order:2}
  .ztq .ztq-body.s-reg>.s-main{order:1}
  .ztq .s-reg .s-dup{display:none}
}
.ztq .card.s-acctfix{border-color:#f1dfb8}
.ztq .s-acctfix .bul{font-size:12.5px}
.ztq .s-acctfix .row.between .btn{white-space:normal;text-align:center}
.ztq .s-pre .ok{color:var(--g2);font-size:12.5px;font-weight:600;white-space:nowrap}

/* ── 2차(10-14) 관리자 화면(zp-trade-admin.js, 접두어 .a-) · 공용 도구(zp-trade-core.js, .ztq-) 추가분 — zp-trade.css 맨 끝에 붙인다 ── */
/* 눌린 탭(초록 바탕 #1e5b47) 안 빨간 숫자 · 덧붙임 글이 안 보이던 것(대비 1.46:1) → 밝은 분홍(대비 약 6:1) */
.ztq .tabs button[aria-pressed="true"] .a-red{color:#ffd9d2}
/* 「그중 보완 · 지급 보류」: 앞 탭(파트너 승인 대기) 숫자 안의 일부 — 점선 테두리 · 띄움으로 따로 세는 탭이 아님을 보인다 */
.ztq .tabs .a-subtab{border-style:dashed;margin-left:6px;font-size:13.5px}
/* 계좌 열쇠 없음(운영 기본) 안내 · 계좌 확인 필요 안내 줄 */
.ztq .a-keyoff{display:flex;gap:6px;align-items:flex-start;color:#7a4f0c;background:var(--warnbg);border-radius:8px;padding:6px 8px;font-size:12.5px;line-height:1.45;margin:4px 0 0;overflow-wrap:anywhere}
.ztq .a-keyoff .ico{width:16px;height:16px;flex:none;margin-top:1px;color:var(--warn)}
.ztq .a-warntext{display:flex;gap:6px;align-items:flex-start;color:#7a4f0c;margin:0;overflow-wrap:anywhere}
.ztq .a-warntext .ico{width:16px;height:16px;flex:none;margin-top:2px;color:var(--warn)}
/* 통장 사본 「지급 담당만 볼 수 있음」 칩 · 줄 안 자물쇠 */
.ztq .a-doc .chip .ico,.ztq .ztq-kvt td .ico{width:14px;height:14px;vertical-align:-2px}
/* 공용: 진행 중(결과를 기다리는 정상 단계) — 주황 테두리 + 가운데 점(「!」 없음) */
.ztq .ztq-sl li.s-wait>i{border:2px solid #e07a1f;color:#c2410c;background:#fff}
.ztq .ztq-sl li.s-wait>i:empty::before{content:"";width:10px;height:10px;border-radius:50%;background:#e07a1f}
.ztq .ztq-sl li.s-wait>div>b{color:#c2410c}
.ztq .ztq-sl li.s-wait .tag{background:var(--warnbg);color:var(--warn)}
/* ════════ 2차(10-14) 추가분 끝 ════════ */

/* ════════ 3차(10-14) 추가분 — 파트너(.p-) · 공급사(.s-) · 관리자(.a-) 화면 담당 3명의 css_additions 를 그대로 붙임(fix/round3_partial/css_*.css) ════════ */
/* ── 파트너 3차(10-14, zp-trade-partner.js) ── */
/* 작성 1~4단계(.p-wiz): 본문이 1280 노트북 폭(약 947)이어도 지도·「요청 내용」 카드를 「다음」 단추 아래로 내리지 않고 옆에 — 왼쪽 560 + 지도 최소 340.
   본문 920 이하에서만 한 칸(P3-P6). 지도 칸이 좁아 카드는 「일반/위성」 단추 줄 아래로 내리고 오른쪽 확대·내 위치 단추 자리를 비운다 */
@container (min-width:921px) and (max-width:980px){
  #tradeQuoteView .ztq-split.p-wiz{grid-template-columns:minmax(0,560px) minmax(340px,1fr)}
  #tradeQuoteView .ztq-split.p-wiz>.ztq-left{max-height:calc(100vh - 140px)}
  #tradeQuoteView .ztq-split.p-wiz>.ztq-right{min-height:420px}
  #tradeQuoteView .ztq-split.p-wiz .ztq-map-card{top:64px;max-width:calc(100% - 82px)}
}
/* 견적 비교(그림 8): 본문 701~980 은 지도가 아래로 가서 왼쪽이 본문 전체 폭 — 목록 | 상세 두 칸을 되살린다(1100 이하 한 칸 규칙이 아래 한계 없이 걸리던 것, P7-P9) */
@container (min-width:701px) and (max-width:980px){#tradeQuoteView .p-mid .p-cmp:not(.one){grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
/* 진행 기록: 사진 없는 기록만 있으면 사진 칸을 두지 않는다 · 지도 옆 왼쪽 칸이 좁은 본문 981~1100 에서는 기록 | 사진 을 위아래로(P10-P11) */
.ztq .p-prog.p-nofile{grid-template-columns:minmax(0,1fr)}
@container (min-width:981px) and (max-width:1100px){#tradeQuoteView .p-mid .p-prog{grid-template-columns:minmax(0,1fr)}}
/* 진행 공사 탭: 휴대폰 폭에서는 옆으로 밀지 않고 두 줄 2칸(「입금 · 지급」 탭이 화면 밖에 숨지 않게, P10-P11) */
@container (max-width:520px){
  #tradeQuoteView .tabs.p-otabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}
  #tradeQuoteView .tabs.p-otabs button{white-space:normal;min-height:40px}
}
/* 진행 공사 단계표(.p-dots, 그림 P11): 번호 대신 지난 단계 ✓ · 지금 단계 고리 안 점 · 남은 단계 빈 원 */
.ztq .steps.p-dots .st:not(.done) i{background:#fff;border:2px solid #c9d2ce}
.ztq .steps.p-dots .st.on i{border-color:var(--g)}
.ztq .steps.p-dots .st.on i::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--g)}
.ztq .steps.p-dots .st.on.warn i{border-color:#e07a1f}
.ztq .steps.p-dots .st.on.warn i::after{background:#e07a1f}
/* 작은 초록 테두리 단추(진행 기록 「⊕ 기록 추가」, 그림 P11) */
.ztq .btn.p-sm{min-height:34px;padding:0 12px;font-size:13px;gap:4px}
.ztq .btn.p-sm .ico{width:16px;height:16px}

/* ── 공급사센터 10-14 3차(zp-trade-supplier.js, 접두어 .s-) — zp-trade.css 맨 끝에 붙인다 ── */
/* 견적 제출 내역(S3 — 왼쪽이 홈 메뉴인 화면)도 좁은 화면에선 본문 먼저, 홈 메뉴 · 업체 카드는 아래로 */
@media (max-width:900px){
  .ztq .ztq-body.s-mfirst>.s-aside{order:2}
  .ztq .ztq-body.s-mfirst>.s-main{order:1}
}
/* 등록 신청 필수 동의 3개(결정 AE): 「모두 동의」 줄 + 항목마다 제목 체크 · 내용 점 목록 · 지난 동의 시각 */
.ztq .s-consall{padding:10px 12px;border-radius:10px;background:var(--mint2)}
.ztq .s-consall b,.ztq .s-cons .check b{font-weight:600;overflow-wrap:anywhere;min-width:0}
.ztq .s-cons{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;min-width:0}
.ztq .s-cons .bul{margin:0 0 0 26px;font-size:12.5px;color:var(--muted)}
.ztq .s-cons>.small{margin-left:26px}
/* ════════ 공급사센터 3차 추가분 끝 ════════ */

/* 3차(10-14) 관리자: 🔔 관리자 알림 창(결정 AF) · 동의 기록(결정 AE) */
.ztq .a-bell-list{gap:6px;max-height:60vh;overflow:auto}
.ztq .a-bell-row{display:grid;gap:4px;justify-items:start;width:100%;padding:10px 14px;text-align:left;font:inherit;color:var(--ink);cursor:pointer}
.ztq .a-bell-row:hover{background:var(--mint2)}
.ztq .a-bell-row.is-new{border-color:var(--warn)}
.ztq .a-bell-row .small{overflow-wrap:anywhere}
.ztq .a-consents{margin:4px 0 0}
.ztq .a-consents li{overflow-wrap:anywhere}
.ztq .a-consent{margin-top:8px}
.ztq .a-consent summary{cursor:pointer;color:var(--g2);font-weight:600}
/* ════════ 3차(10-14) 추가분 끝 ════════ */

/* ════════ 4차(10-14) 추가분 — 화면 담당 css_additions(fix/round4_partial/css_*.css · 파트너·관리자는 없음) ════════ */
/* ── 4차(10-14) 공급사 ── */
/* 필수 동의 체크칸 크기 고정 — 긴 제목(b min-width:0)에 같이 눌려 휴대폰 폭에서 13~16px 로 작아지던 것(supplier#1). 「모두 동의」와 같은 18px */
.ztq .s-consall input,.ztq .s-cons .check input{flex:none;width:18px;height:18px}
/* ════════ 4차(10-14) 추가분 끝 ════════ */
/* r6.1: 입금 동의 줄 「보기 ›」가 좁은 폭에서 두 줄로 쪼개지지 않게 */
.ztq .check>.link.more{flex:none;white-space:nowrap}
