@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.css');

:root{
  --ink:#10192E;
  --navy:#1D3461;
  --navy-dark:#132342;
  --base:#F5F6F8;
  --surface:#FFFFFF;
  --line:#E1E4EA;
  --line-soft:#EDEFF3;
  --gold:#A6803D;
  --gold-soft:#F3E9D4;
  --success:#2F6D4F;
  --success-soft:#E4F0E9;
  --alert:#AE3B3B;
  --alert-soft:#F6E7E7;
  --muted:#6B7280;
  --mono: 'IBM Plex Mono', 'Roboto Mono', monospace;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:'Pretendard', -apple-system, BlinkMacSystemFont, sans-serif;
  background:var(--base);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
@font-face{
  font-family:'IBM Plex Mono';
  src:local('IBM Plex Mono');
}

/* ===== App Shell ===== */
.app{max-width:1180px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;}
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 28px;background:var(--surface);border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:10;
}
.brand{display:flex;align-items:center;gap:11px;}
.brand-mark{
  width:34px;height:34px;border-radius:8px;background:var(--navy);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-weight:700;font-size:15px;letter-spacing:-0.5px;
  font-family:var(--mono);
}
.brand-text{display:flex;flex-direction:column;line-height:1.15;}
.brand-text b{font-size:15px;font-weight:700;letter-spacing:-0.2px;}
.brand-text span{font-size:11.5px;color:var(--muted);}

.topbar-right{display:flex;align-items:center;gap:14px;}
.nav-tabs{display:flex;gap:4px;background:var(--base);padding:4px;border-radius:9px;border:1px solid var(--line);}
.nav-tabs a{
  border:none;background:transparent;padding:8px 14px;border-radius:6px;text-decoration:none;
  font-family:inherit;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;
  transition:all .15s ease;
}
.nav-tabs a.active{background:var(--navy);color:#fff;}
.nav-tabs a:not(.active):hover{color:var(--ink);}
.user-badge{font-size:12px;color:var(--muted);white-space:nowrap;}
.user-badge b{color:var(--ink);}
.logout-form{display:inline;}
.btn-logout{
  font-family:inherit;font-size:12px;font-weight:700;padding:7px 12px;border-radius:7px;
  border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;
}
.btn-logout:hover{color:var(--alert);border-color:var(--alert);}

main{flex:1;padding:32px 28px 64px;}

h1.page-title{font-size:20px;font-weight:700;margin:0 0 4px;letter-spacing:-0.3px;}
p.page-sub{font-size:13.5px;color:var(--muted);margin:0 0 28px;}

/* ===== 공통: 카드/필드 ===== */
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;}
.field-group{margin-bottom:22px;}
.field-group-title{
  font-size:12.5px;font-weight:700;color:var(--navy);letter-spacing:0.2px;
  display:flex;align-items:center;gap:7px;margin-bottom:14px;
}
.field-group-title::before{content:'';width:3px;height:12px;background:var(--gold);border-radius:2px;display:inline-block;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:12px;}
.field{display:flex;flex-direction:column;gap:6px;}
.field label{font-size:12.5px;font-weight:600;color:var(--ink);}
.field label .req{color:var(--alert);margin-left:2px;}
.field input,.field select{
  font-family:inherit;font-size:13.5px;padding:10px 12px;border:1px solid var(--line);
  border-radius:7px;background:var(--base);color:var(--ink);outline:none;
  transition:border-color .15s ease, background .15s ease;
}
.field input:focus,.field select:focus{border-color:var(--navy);background:#fff;}
.field select:disabled{background:#EEF1F7;color:var(--navy);font-weight:600;cursor:not-allowed;opacity:0.9;}
.field input.mono{font-family:var(--mono);letter-spacing:0.3px;}
.field-hint{font-size:11px;color:var(--muted);}

.btn{
  font-family:inherit;font-size:13.5px;font-weight:700;padding:11px 20px;border-radius:8px;
  border:none;cursor:pointer;transition:opacity .15s ease, transform .1s ease;
}
.btn:active{transform:scale(0.98);}
.btn:disabled{opacity:0.5;cursor:not-allowed;}
.btn-primary{background:var(--navy);color:#fff;}
.btn-primary:hover{background:var(--navy-dark);}
.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--line);}
.btn-ghost:hover{color:var(--ink);border-color:var(--ink);}

.alert-box{
  font-size:12.5px;padding:11px 14px;border-radius:8px;margin-bottom:16px;
  background:var(--alert-soft);color:var(--alert);border:1px solid #ecd3d3;
}
.success-box{
  font-size:12.5px;padding:11px 14px;border-radius:8px;margin-bottom:16px;
  background:var(--success-soft);color:var(--success);border:1px solid #cfe6da;
}

/* ===== 로그인 화면 ===== */
.login-wrap{display:flex;justify-content:center;padding-top:60px;}
.login-card{width:380px;padding:38px 36px 32px;text-align:center;}
.login-mark{
  width:52px;height:52px;border-radius:12px;background:var(--navy);margin:0 auto 18px;
  display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--mono);
  font-weight:700;font-size:20px;
}
.login-card h2{font-size:17px;margin:0 0 6px;font-weight:700;}
.login-card p.sub{font-size:12.5px;color:var(--muted);margin:0 0 26px;}
.login-fields{display:flex;flex-direction:column;gap:12px;margin-bottom:20px;text-align:left;}
.login-card .btn-primary{width:100%;padding:12px;font-size:14px;}
.login-foot{margin-top:18px;font-size:11.5px;color:var(--muted);}

/* ===== 딜러 등록 화면 ===== */
.reg-layout{display:grid;grid-template-columns:1.35fr 1fr;gap:24px;align-items:start;min-width:0;}
.reg-form{padding:26px 26px 22px;min-width:0;}
.reg-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px;border-top:1px solid var(--line-soft);padding-top:18px;}

.cert-sticky{position:sticky;top:96px;min-width:0;}
.cert-label{font-size:12px;font-weight:700;color:var(--muted);margin-bottom:10px;letter-spacing:0.3px;}

/* ===== 주소 검색 ===== */
.field-stack{display:flex;flex-direction:column;gap:12px;}
.serial-input-row{display:flex;align-items:stretch;}
.serial-prefix{
  display:flex;align-items:center;padding:0 10px;background:var(--base);border:1px solid var(--line);border-right:none;
  border-radius:7px 0 0 7px;font-family:var(--mono);font-size:13px;color:var(--muted);font-weight:700;white-space:nowrap;
}
.serial-input-row input{border-radius:0 7px 7px 0;flex:1;min-width:0;}
.addr-row{display:flex;gap:8px;}
.addr-row input{flex:1;}
.btn-addr{white-space:nowrap;padding:10px 14px;font-size:12.5px;}
.addr-search-panel{
  display:none;margin-top:8px;padding:12px;border:1px solid var(--line);border-radius:9px;
  background:var(--base);
}
.addr-search-panel.open{display:block;}
.addr-query{
  width:100%;font-family:inherit;font-size:13px;padding:9px 11px;border:1px solid var(--line);
  border-radius:7px;background:var(--surface);margin-bottom:8px;outline:none;
}
.addr-query:focus{border-color:var(--navy);}
.addr-results{display:flex;flex-direction:column;gap:2px;max-height:150px;overflow-y:auto;}
.addr-item{
  padding:9px 10px;font-size:12.5px;border-radius:6px;cursor:pointer;color:var(--ink);
}
.addr-item:hover{background:#EEF1F7;color:var(--navy);}
.addr-powered{font-size:10.5px;color:var(--muted);margin-top:8px;text-align:right;}
.addr-empty{font-size:12px;color:var(--muted);padding:6px 4px;}

/* ===== 시공 확인사진 업로드 ===== */
.photo-guide{
  font-size:12px;color:var(--navy);background:#EEF1F7;border:1px solid #D8E0F0;border-radius:8px;
  padding:11px 13px;margin-bottom:12px;line-height:1.55;
}
.photo-upload-row{display:flex;align-items:center;gap:12px;}
.photo-upload-btn{
  font-size:12.5px;font-weight:700;padding:10px 16px;border-radius:8px;border:1px solid var(--navy);
  color:var(--navy);cursor:pointer;background:#fff;white-space:nowrap;
}
.photo-upload-btn:hover{background:#EEF1F7;}
.photo-upload-hint{font-size:12px;color:var(--muted);}
.photo-preview-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;}
.photo-thumb{width:88px;height:88px;border-radius:8px;overflow:hidden;border:1px solid var(--line);background:var(--base);}
.photo-thumb img{width:100%;height:100%;object-fit:cover;display:block;}

/* ===== 시공확인 사진 2칸 업로드 ===== */
.photo-slot-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.photo-slot{border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--base);}
.photo-slot-title{font-size:12.5px;font-weight:700;color:var(--navy);margin-bottom:8px;}
.photo-slot .photo-upload-btn{display:inline-block;}
.photo-slot-preview{margin-top:10px;min-height:88px;display:flex;align-items:center;justify-content:center;}
.photo-slot-preview img{max-width:100%;max-height:140px;border-radius:8px;border:1px solid var(--line);display:block;}
.photo-slot.filled{border-color:var(--success);background:var(--success-soft);}

/* ===== 개인정보 동의 ===== */
.consent-box{border:1px solid var(--line);border-radius:10px;padding:14px 16px;background:var(--base);margin-bottom:12px;}
.consent-lead{font-size:12.5px;font-weight:700;color:var(--navy);margin:0 0 8px;}
.consent-list{margin:0;padding-left:16px;display:flex;flex-direction:column;gap:5px;}
.consent-list li{font-size:12px;color:var(--muted);line-height:1.55;}
.consent-list li b{color:var(--ink);}
.consent-check{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer;}
.consent-check input{width:16px;height:16px;accent-color:var(--navy);cursor:pointer;}

/* ===== 취소된 등록 표시 ===== */
.customer-card.void{opacity:0.72;border-style:dashed;}
.badge-void{background:var(--alert-soft);color:var(--alert);}
.void-note{font-size:11.5px;color:var(--alert);margin-top:-6px;margin-bottom:12px;}

/* ===== 수정 모달 ===== */
.edit-modal-inner{max-width:560px;width:94vw;max-height:88vh;display:flex;flex-direction:column;}
.edit-modal-body{padding:20px;overflow-y:auto;}
.edit-actions{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--line);}

/* ===== 사진 보기 모달 ===== */
.btn-photo{
  font-family:inherit;font-size:11.5px;font-weight:700;padding:7px 10px;border-radius:7px;
  border:1px solid var(--line);background:var(--surface);color:var(--navy);cursor:pointer;white-space:nowrap;
}
.btn-photo:hover{border-color:var(--navy);background:#EEF1F7;}
.photo-modal{
  display:none;position:fixed;inset:0;background:rgba(16,25,46,0.55);z-index:100;
  align-items:center;justify-content:center;padding:20px;
}
.photo-modal.open{display:flex;}
.photo-modal-inner{background:#fff;border-radius:14px;width:100%;max-width:480px;overflow:hidden;}
.photo-modal-head{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 20px;border-bottom:1px solid var(--line);}
.photo-modal-title{font-size:14px;font-weight:700;margin-bottom:4px;}
.photo-modal-sub{font-size:11.5px;color:var(--muted);line-height:1.5;}
.photo-modal-close{border:none;background:transparent;font-size:16px;color:var(--muted);cursor:pointer;padding:4px;}
.photo-modal-body{padding:20px;}
.photo-placeholder{
  aspect-ratio:4/3;border-radius:10px;background:var(--base);border:1.5px dashed var(--line);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--muted);
}
.photo-placeholder .icon{font-size:28px;}
.photo-placeholder span{font-size:12px;}
.photo-grid-view{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;}
.photo-grid-view img{width:100%;border-radius:8px;border:1px solid var(--line);display:block;}

/* ===== 조회 화면: 스코프/필터 ===== */
.scope-note{font-size:12.5px;color:var(--navy);background:#EEF1F7;border:1px solid #D8E0F0;border-radius:8px;padding:10px 14px;margin-bottom:18px;display:inline-block;}
.filter-tabs{display:flex;gap:2px;background:var(--base);padding:3px;border-radius:7px;border:1px solid var(--line);}
.filter-tab{
  font-family:inherit;font-size:12px;font-weight:600;padding:6px 12px;border-radius:5px;border:none;
  background:transparent;color:var(--muted);cursor:pointer;
}
.filter-tab.active{background:var(--navy);color:#fff;}
.filter-input{
  font-family:inherit;font-size:12.5px;padding:8px 12px;border:1px solid var(--line);
  border-radius:7px;background:var(--surface);color:var(--ink);
}
.group-header{
  font-size:11.5px;font-weight:700;color:var(--navy);padding:14px 18px 4px;letter-spacing:0.2px;
}
.is-hidden{display:none !important;}

/* ===== 보증서 A4 인쇄 레이아웃 ===== */
.cert-label-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:10px;flex-wrap:wrap;}
.btn-print{padding:7px 12px;font-size:12px;flex-shrink:0;}
.cert-preview-frame{
  width:100%;aspect-ratio:210/297;overflow:hidden;border:1px solid var(--line);border-radius:10px;
  background:#E7E9ED;cursor:pointer;transition:box-shadow .15s ease;position:relative;
}
.cert-preview-frame:hover{box-shadow:0 0 0 2px var(--navy) inset;}
.cert-preview-frame::after{
  content:'🔍 클릭하여 크게 보기';position:absolute;bottom:10px;right:12px;
  background:rgba(16,25,46,0.75);color:#fff;font-size:10.5px;font-weight:600;
  padding:5px 10px;border-radius:20px;pointer-events:none;
}
.cert-preview-scale{width:794px;transform-origin:top left;}
.cert-print{
  width:794px;min-height:1123px;background:#fff;box-sizing:border-box;
  padding:44px 46px;box-shadow:0 2px 14px rgba(16,25,46,0.12);
  font-family:'Pretendard',sans-serif;color:#1a1f2b;
}
.cp-header{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--navy);padding-bottom:16px;margin-bottom:22px;}
.cp-brand{display:flex;align-items:center;gap:10px;}
.cp-brand-text{font-family:'Pretendard',sans-serif;font-weight:800;font-size:15px;letter-spacing:-0.2px;color:var(--navy);}
.cp-no{font-family:var(--mono);font-size:12px;color:var(--muted);}
.cp-title{font-size:26px;font-weight:800;text-align:center;margin:0 0 4px;letter-spacing:-0.3px;}
.cp-subtitle{text-align:center;font-size:12.5px;color:var(--muted);margin:0 0 26px;letter-spacing:0.3px;}
.cp-table{width:100%;border-collapse:collapse;margin-bottom:26px;}
.cp-table th,.cp-table td{border:1px solid var(--line);padding:11px 14px;font-size:13px;text-align:left;}
.cp-table th{width:110px;background:#F5F6F8;color:var(--muted);font-weight:700;}
.cp-table td{font-family:var(--mono);font-weight:500;}
.cp-highlight th,.cp-highlight td{background:var(--gold-soft);color:#7A5C22;font-weight:700;}
.cp-terms{border-top:1px dashed var(--line);padding-top:16px;margin-bottom:30px;}
.cp-terms-title{font-size:12.5px;font-weight:700;color:var(--navy);margin-bottom:8px;}
.cp-terms ol{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:5px;}
.cp-terms li{font-size:10.5px;color:var(--muted);line-height:1.6;}
.cp-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:18px;}
.cp-issue{font-size:11.5px;color:var(--muted);}
.cp-seal-wrap{width:64px;height:64px;flex-shrink:0;}
.cp-seal-svg{width:100%;height:100%;}

.no-print{}
.print-root{display:none;}
@media print{
  body > *:not(.print-root){display:none !important;}
  .print-root{display:block !important;}
  .print-root .cert-print{
    width:210mm;min-height:auto;box-shadow:none;padding:12mm 14mm;margin:0;
  }
  @page{size:A4;margin:0;}
}

/* ===== 저장된 보증서 조회 모달 ===== */
.cert-modal-inner{max-width:600px;width:94vw;}
.cert-modal-body{padding:0;background:#E7E9ED;}
.cert-modal-frame{width:100%;aspect-ratio:210/297;overflow:hidden;}
.cert-modal-scale{width:794px;transform-origin:top left;}
.row-actions{display:flex;flex-direction:column;gap:6px;}

/* ===== 관리자 설정 ===== */
.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;}
.admin-panel{padding:20px;}
.admin-panel-desc{font-size:12px;color:var(--muted);margin:0 0 14px;line-height:1.5;}
.admin-add-row{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap;}
.admin-add-row input,.admin-add-row select{
  flex:1;min-width:110px;font-family:inherit;font-size:12.5px;padding:9px 11px;
  border:1px solid var(--line);border-radius:7px;background:var(--base);color:var(--ink);outline:none;
}
.admin-add-row input:focus,.admin-add-row select:focus{border-color:var(--navy);background:#fff;}
.admin-add-row .btn{padding:9px 14px;font-size:12.5px;white-space:nowrap;}
.tag-list{display:flex;flex-wrap:wrap;gap:6px;}
.tag{background:#EEF1F7;color:var(--navy);font-size:12px;font-weight:600;padding:6px 8px 6px 11px;border-radius:20px;display:inline-flex;align-items:center;gap:6px;}
.tag-x{
  border:none;background:rgba(29,52,97,0.12);color:var(--navy);width:16px;height:16px;border-radius:50%;
  font-size:11px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;
}
.tag-x:hover{background:var(--alert);color:#fff;}
.tag-mode{
  font-size:10px;font-weight:700;color:var(--gold);background:var(--gold-soft);
  padding:2px 7px;border-radius:10px;margin-left:2px;
}
.tag-empty{font-size:12px;color:var(--muted);}
.admin-panel-wide{grid-column:1 / -1;}
.user-list{display:flex;flex-direction:column;gap:8px;}
.user-row{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--base);font-size:12.5px;
}
.user-row .u-id{font-family:var(--mono);font-weight:700;color:var(--navy);}
.user-row .u-meta{color:var(--muted);}

.terms-list{display:flex;flex-direction:column;gap:8px;}
.term-row{
  display:flex;align-items:flex-start;justify-content:space-between;gap:10px;
  padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--base);font-size:12.5px;
}
.term-row .t-text{line-height:1.5;color:var(--ink);}
.term-row .tag-x{flex-shrink:0;margin-top:2px;}

/* ===== 자동 메일 발송 설정 ===== */
.mail-toggle-row{display:flex;align-items:center;gap:10px;margin-bottom:22px;}
.switch{position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0;}
.switch input{opacity:0;width:0;height:0;}
.switch-slider{
  position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:#D5D9E0;
  transition:.2s;border-radius:22px;
}
.switch-slider:before{
  position:absolute;content:'';height:16px;width:16px;left:3px;bottom:3px;
  background:#fff;transition:.2s;border-radius:50%;
}
.switch input:checked + .switch-slider{background:var(--navy);}
.switch input:checked + .switch-slider:before{transform:translateX(18px);}
#mailEnabledLabel{font-size:13px;font-weight:600;color:var(--ink);}

.mail-section{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--line-soft);}
.mail-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0;}
.mail-section-title{font-size:12.5px;font-weight:700;color:var(--navy);margin-bottom:12px;}
.mail-field-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;}
.mail-field-item{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink);cursor:pointer;}
.mail-field-item input{width:15px;height:15px;accent-color:var(--navy);cursor:pointer;}

/* ===== 발송 이력 ===== */
.inv-cols-maillog{grid-template-columns:1.1fr 0.7fr 0.6fr 1.4fr 1.1fr 0.7fr;min-width:760px;}
.mail-error-box{
  grid-column:1 / -1;margin-top:10px;padding:10px 12px;background:var(--alert-soft);color:var(--alert);
  border-radius:8px;font-size:12px;
}

/* ===== 재고 관리 ===== */
.inv-view-tabs{display:flex;gap:6px;margin-bottom:18px;flex-wrap:wrap;}
.inv-tab{
  font-family:inherit;font-size:12.5px;font-weight:700;padding:9px 16px;border-radius:8px;
  border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;
}
.inv-tab.active{border-color:var(--navy);background:#EEF1F7;color:var(--navy);}
.inv-chart-card{padding:18px 20px;margin-bottom:16px;}
.bar-row{display:flex;align-items:center;gap:10px;margin-bottom:11px;font-size:12px;}
.bar-row:last-child{margin-bottom:0;}
.bar-label{width:190px;flex-shrink:0;color:var(--muted);font-weight:600;}
.bar-track{flex:1;height:10px;background:var(--base);border-radius:6px;overflow:hidden;}
.bar-fill{height:100%;background:var(--navy);border-radius:6px;}
.bar-fill.low{background:var(--alert);}
.bar-value{width:55px;text-align:right;font-family:var(--mono);font-weight:700;flex-shrink:0;}
.inv-table-wrap{overflow-x:auto;}
.inv-table-head{display:grid;padding:0 18px 10px;font-size:11px;font-weight:700;color:var(--muted);letter-spacing:0.2px;min-width:520px;}
.inv-row{display:grid;padding:12px 18px;font-size:12.5px;border-top:1px solid var(--line-soft);align-items:center;min-width:520px;}
.inv-cols-stock{grid-template-columns:1.3fr 0.9fr 1.1fr 0.7fr 0.7fr 0.7fr;}
.inv-cols-delivery{grid-template-columns:0.9fr 1.1fr 0.8fr 1fr 0.6fr 1.3fr;min-width:680px;}
.inv-cols-usage-detail{grid-template-columns:0.9fr 1.1fr 0.8fr 0.8fr 0.9fr 0.9fr 1.1fr 1fr;min-width:820px;}
.inv-low{color:var(--alert);font-weight:700;}
.inv-note{color:var(--muted);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.inv-panel-toolbar{display:flex;justify-content:flex-end;margin:2px 0 14px;}
.inv-group-header{
  font-size:11.5px;font-weight:700;color:var(--navy);padding:12px 18px 6px;letter-spacing:0.2px;
  background:var(--base);
}

/* ===== 시공 고객 조회 ===== */
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:22px;}
.stat-card{padding:18px 18px 16px;}
.stat-card .label{font-size:12px;color:var(--muted);font-weight:600;margin-bottom:8px;}
.stat-card .value{font-size:24px;font-weight:700;font-family:var(--mono);letter-spacing:-0.5px;}
.stat-card .value.gold{color:var(--gold);}

.dash-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;flex-wrap:wrap;gap:10px;}
.dash-toolbar .filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.filters select{
  font-family:inherit;font-size:12.5px;padding:8px 12px;border:1px solid var(--line);
  border-radius:7px;background:var(--surface);color:var(--ink);
}
.search-row{margin-bottom:14px;}
.search-input{
  width:100%;font-family:inherit;font-size:13.5px;padding:11px 14px;border:1px solid var(--line);
  border-radius:9px;background:var(--surface);color:var(--ink);outline:none;
}
.search-input:focus{border-color:var(--navy);}

.cert-list{display:flex;flex-direction:column;gap:12px;}

.customer-card{padding:18px 20px;}
.customer-card-top{
  display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:8px;
  margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--line-soft);
}
.customer-name{font-size:16px;font-weight:700;letter-spacing:-0.2px;}
.customer-badges{display:flex;gap:6px;flex-wrap:wrap;}
.badge{background:#EEF1F7;color:var(--navy);font-size:11px;font-weight:700;padding:5px 11px;border-radius:20px;white-space:nowrap;}
.customer-detail-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px 18px;margin-bottom:16px;
}
.detail-item{display:flex;flex-direction:column;gap:3px;min-width:0;}
.detail-item .dl{font-size:10.5px;color:var(--muted);font-weight:700;letter-spacing:0.2px;}
.detail-item .dv{font-size:12.5px;font-family:var(--mono);color:var(--ink);word-break:break-all;}
.customer-card-actions{display:flex;gap:8px;flex-wrap:wrap;}

.empty-state{font-size:13px;color:var(--muted);padding:24px;text-align:center;}

/* ===== 모바일 반응형 ===== */
@media (max-width:860px){
  .reg-layout{grid-template-columns:1fr;}
  .field-row{grid-template-columns:1fr;}
  .stat-row{grid-template-columns:1fr 1fr;}
}
@media (max-width:640px){
  .topbar{flex-direction:column;align-items:stretch;gap:10px;padding:14px 16px;}
  .brand-text b{font-size:13.5px;line-height:1.3;}
  .topbar-right{flex-direction:column;align-items:stretch;gap:8px;}
  .nav-tabs{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .nav-tabs a{white-space:nowrap;}
  main{padding:18px 14px 48px;}
  .page-title{font-size:18px;}
  .login-wrap{padding-top:16px;}
  .login-card{width:100%;max-width:360px;padding:28px 20px 24px;}
  .cert-preview-frame::after{font-size:9.5px;padding:4px 8px;bottom:6px;right:8px;}
  .stat-row{grid-template-columns:1fr;}
  .customer-detail-grid{grid-template-columns:1fr 1fr;}
  .customer-card-top{flex-direction:column;}
  .dash-toolbar{flex-direction:column;align-items:stretch;}
  .dash-toolbar .filters{width:100%;flex-direction:column;align-items:stretch;}
  .filters select,.filter-input,.filter-tabs{width:100%;}
  .dash-toolbar > .btn{width:100%;}
  .search-row{flex-direction:column;}
  .admin-add-row{flex-direction:column;}
  .admin-add-row input,.admin-add-row select,.admin-add-row .btn{width:100%;}
  .inv-view-tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;}
  .inv-view-tabs .inv-tab{white-space:nowrap;}
  .bar-label{width:110px;font-size:11px;}
  .inv-panel-toolbar{justify-content:stretch;}
  .inv-panel-toolbar .btn{width:100%;}

  .reg-form{padding:20px 16px 16px;}
  .cert-label{font-size:11px;}
  .field-group-title{font-size:12px;}
  .addr-row{flex-direction:column;align-items:stretch;}
  .btn-addr{width:100%;}
  .addr-search-panel{padding:10px;}
  .photo-upload-row{flex-direction:column;align-items:flex-start;gap:8px;}
  .photo-slot-grid{grid-template-columns:1fr;}
  .photo-guide{font-size:11.5px;padding:10px 12px;}
  .reg-actions{flex-direction:column-reverse;border-top:1px solid var(--line-soft);padding-top:16px;}
  .reg-actions .btn{width:100%;}
  .cert-sticky{margin-top:6px;}
}
@media (max-width:420px){
  .customer-detail-grid{grid-template-columns:1fr;}
}
