/* =========================================================
   COOL LIGHT THEME (Single Source of Truth)
   - Light cool background + blue accent
   - Cards / KV / Forms / Buttons / Badges unified
   - Drawer / Modal / Toast included
   ========================================================= */

/* ---------- Reset ---------- */
*,
*::before,
*::after { box-sizing: border-box; }
html, body { height: 100%; }
a{ color: inherit; text-decoration: none; }
a:hover{ text-decoration: none; }
img{ max-width:100%; height:auto; }
button, input, select, textarea{ font: inherit; }

/* ---------- Tokens ---------- */
:root{
  /* cool background */
  --bg: #eef3ff;
  --bg2:#f6f9ff;
  --surface: #ffffff;
  --surface-2: #f7f9ff;

  --text: #0f172a;
  --muted: #64748b;
  --muted-2:#94a3b8;

  /* brand (cool blue) */
  --brand: #3b82f6;       /* primary */
  --brand-2:#2563eb;      /* deep */
  --brand-soft: rgba(59,130,246,.12);

  --border: rgba(15,23,42,.10);
  --hairline: rgba(15,23,42,.06);

  --shadow: 0 18px 50px rgba(2,6,23,.08);
  --shadow-soft: 0 10px 24px rgba(2,6,23,.06);

  --radius: 18px;
  --radius-sm: 14px;
  --gap: 14px;
  --container: 980px;
  --tap: 48px;

  /* badge system */
  --c-comp: #ef4444;  /* 종합 - red */
  --c-oper: #3b82f6;  /* 작동 - blue */
  --c-alarm:#f97316;  /* 경보 - orange */
  --c-rel:  #22c55e;  /* 관계인 - green */
  --c-pub:  #facc15;  /* 공공기관 - yellow */
}

/* ---------- Base ---------- */
body{
  margin: 0;
  font-weight: 500;
  letter-spacing: -0.02em;
  font-family:
    "Noto Sans KR",
    -apple-system,
    BlinkMacSystemFont,
    "Apple SD Gothic Neo",
    "Malgun Gothic",
    Arial,
    sans-serif;
  color: var(--text);
  background:
    radial-gradient(900px 520px at 15% -10%, rgba(59,130,246,.14), transparent 62%),
    radial-gradient(900px 520px at 105% 10%, rgba(37,99,235,.12), transparent 55%),
    linear-gradient(180deg, var(--bg2), var(--bg));
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ---------- Focus ---------- */
:where(a, button, input, select, textarea):focus-visible{
  outline: none;
  box-shadow: 0 0 0 4px rgba(59,130,246,.18);
  border-color: rgba(59,130,246,.35);
}

/* ---------- Layout ---------- */
.container{
  width: min(var(--container), calc(100% - 28px));
  margin: 14px auto 52px;
}
.stack{ display:flex; flex-direction:column; gap: var(--gap); }
.row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.center{ text-align:center; }
.right{ text-align:right; }

/* =========================================================
   TOPBAR (cool)
   ========================================================= */
.topbar{
  position: sticky;
  top: 0;
  z-index: 900;
  padding: 12px 0;
  background: rgba(255,255,255,.74);
  border-bottom: 1px solid var(--hairline);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}
.topbar-inner{
  width: min(var(--container), calc(100% - 28px));
  margin: 0 auto;
}
.topbar-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
}
.icon-btn{
  width: 42px;
  height: 42px;
  border-radius: 999px;
  border: 1px solid var(--hairline);
  background: rgba(255,255,255,.80);
  color: var(--text);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition: transform .08s ease, background .15s ease, border-color .15s ease;
  font-size: 18px;
  line-height: 1;
  box-shadow: var(--shadow-soft);
}
.icon-btn:hover{ background: rgba(255,255,255,.96); border-color: rgba(15,23,42,.10); }
.icon-btn:active{ transform: translateY(1px) scale(.99); }

.topbar-title{ min-width: 0; text-align:center; }
.topbar-title h1{
  margin: 0;
  font-size: 18px;
  font-weight: 900;
  letter-spacing: -.03em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--text);
}
.topbar-title .sub{
  margin-top: 4px;
  font-size: 12px;
  color: var(--muted);
}

/* =========================================================
   CARDS
   ========================================================= */
.card{
  background: rgba(255,255,255,.92);
  border-radius: var(--radius);
  border: 1px solid var(--hairline);
  box-shadow: var(--shadow);
  padding: 16px;
}
.card-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
  padding-bottom: 10px;
  margin-bottom: 12px;
  border-bottom: 1px solid var(--hairline);
}
.card-title{
  display:flex;
  align-items:center;
  gap: 10px;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: -.02em;
}
.card-title::before{
  content:"";
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: rgba(59,130,246,.92);
  box-shadow: 0 0 0 4px rgba(59,130,246,.12);
}

/* =========================================================
   BUTTONS
   ========================================================= */
.actions{
  display:flex;
  gap: 10px;
  justify-content:flex-end;
  flex-wrap:wrap;
  margin-top: 14px;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 8px;
  height: 44px;
  padding: 0 16px;
  border-radius: 14px;
  border: 1px solid var(--hairline);
  background: rgba(255,255,255,.92);
  color: var(--text);
  font-weight: 600;
  font-size: 14px;
  cursor:pointer;
  box-shadow: var(--shadow-soft);
  transition: transform .08s ease, background .15s ease, border-color .15s ease, filter .15s ease;
  white-space: nowrap;
  -webkit-tap-highlight-color: transparent;
}
.btn:hover{ filter: brightness(1.01); border-color: rgba(15,23,42,.12); }
.btn:active{ transform: translateY(1px) scale(.99); }

.btn.primary{
  background: linear-gradient(180deg, var(--brand), var(--brand-2));
  border-color: transparent;
  color:#fff;
  box-shadow: 0 18px 44px rgba(59,130,246,.18);
}
.btn.danger{
  background: rgba(239,68,68,.10);
  border-color: rgba(239,68,68,.22);
  color: #b91c1c;
  box-shadow: none;
}
.btn.small{
  height: 36px;
  padding: 0 12px;
  border-radius: 12px;
  font-size: 13px;
  font-weight: 600;
}
.btn-block{ width: 100%; }
.btn:disabled{ opacity: .82; cursor: not-allowed; }

/* =========================================================
   FORMS
   ========================================================= */
label{
  display:block;
  font-size: 13px;
  color: var(--muted);
  margin: 0 0 8px;
  font-weight: 600;
}
.input, select, textarea{
  width: 100%;
  min-height: var(--tap);
  padding: 12px 12px;
  border-radius: 14px;
  border: 1px solid var(--hairline);
  background: rgba(255,255,255,.96);
  color: var(--text);
  outline: none;
  box-shadow: var(--shadow-soft);
  transition: box-shadow .15s ease, border-color .15s ease;
}
textarea{ min-height: 110px; resize: vertical; }
.input::placeholder, textarea::placeholder{ color: var(--muted-2); }
.input:focus, select:focus, textarea:focus{
  border-color: rgba(59,130,246,.35);
  box-shadow: 0 0 0 4px rgba(59,130,246,.14);
}
.help{ margin-top: 6px; font-size: 12px; color: var(--muted); }

/* Grid */
.form-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--gap);
}
@media (max-width: 720px){
  .form-grid{ grid-template-columns: 1fr; }
}
.form-grid .full{ grid-column: 1 / -1; }

/* Select arrow */
select{
  -webkit-appearance: none;
  appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--muted) 50%),
    linear-gradient(135deg, var(--muted) 50%, transparent 50%);
  background-position:
    calc(100% - 18px) calc(50% - 3px),
    calc(100% - 12px) calc(50% - 3px);
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  padding-right: 34px;
}

/* =========================================================
   KV (Key/Value)  ← view 페이지가 예뻐지려면 이 구조가 먹어야 함
   ========================================================= */
.kv{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
@media (max-width: 720px){
  .kv{ grid-template-columns: 1fr; }
}
.kv-item{
  display:flex;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(255,255,255,.92);
  border: 1px solid var(--hairline);
  box-shadow: var(--shadow-soft);
  min-width: 0;
}
.kv-item.full{ grid-column: 1 / -1; }
.kv-k{
  flex: 0 0 88px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 600;
  padding-top: 2px;
}
.kv-v{
  flex: 1 1 auto;
  min-width: 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* =========================================================
   BADGES (통일 + 색상 체계)
   ========================================================= */
.badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  border: 1px solid var(--hairline);
  background: rgba(255,255,255,.86);
  color: rgba(15,23,42,.86);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.6), 0 1px 2px rgba(2,6,23,.06);
}
.badge.small{ padding: 4px 9px; font-size: 11px; font-weight: 600; }

/* 점검구분 */

/* 관계인/공공기관 */
.badge.role-rel{ background: rgba(34,197,94,.12); border-color: rgba(34,197,94,.28); color:#15803d; }

/* “뱃지 안 쓰는 경우” 텍스트만 색 주기용 */
.text-comp{ color: #b91c1c; font-weight: 600; }
.text-oper{ color: #1d4ed8; font-weight: 600; }
.text-alarm{ color:#c2410c; font-weight: 600; }
.text-rel{ color:#15803d; font-weight: 600; }
.text-public{ color:#854d0e; font-weight: 600; }

/* =========================================================
   TABLES
   ========================================================= */
.table-wrap{
  width: 100%;
  overflow: auto;
  border-radius: 16px;
  border: 1px solid var(--hairline);
  background: rgba(255,255,255,.92);
  box-shadow: var(--shadow-soft);
  -webkit-overflow-scrolling: touch;
}
.table{
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  min-width: 760px;
  background: transparent;
}
.table th{
  padding: 12px 12px;
  text-align: left;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .08em;
  color: var(--muted);
  background: rgba(59,130,246,.06);
  border-bottom: 1px solid var(--hairline);
  position: sticky;
  top: 0;
}
.table td{
  padding: 12px 12px;
  font-size: 12px;
  border-bottom: 1px solid rgba(15,23,42,.06);
  color: var(--text);
}
.table tr:last-child td{ border-bottom: 0; }
.table tbody tr:hover td{ background: rgba(59,130,246,.04); }
.table th.right, .table td.right{ text-align: right; }

/* =========================================================
   DRAWER
   ========================================================= */
.drawer-overlay{
  position: fixed;
  inset: 0;
  z-index: 19998;
  display: none;
  background: rgba(2,6,23,.45);
}
.drawer-overlay.show{ display:block; }

#drawer.drawer{
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
  width: min(340px, 86vw);
  z-index: 19999;

  background: rgba(255,255,255,.94);
  border-right: 1px solid var(--hairline);
  box-shadow: var(--shadow);

  transform: translateX(-105%);
  transition: transform .22s ease;

  pointer-events: none;
  display:flex;
  flex-direction: column;
}
#drawer.drawer.open{
  transform: translateX(0) !important;
  pointer-events: auto;
}

.drawer-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 14px;
  border-bottom: 1px solid var(--hairline);
  background: rgba(255,255,255,.70);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}
.drawer-title{ font-weight: 900; letter-spacing: -.02em; }
.drawer-close{
  width: 42px;
  height: 42px;
  border-radius: 999px;
  border: 1px solid var(--hairline);
  background: rgba(255,255,255,.90);
  box-shadow: var(--shadow-soft);
  cursor:pointer;
}
.drawer-body{ padding: 12px 14px 18px; overflow:auto; flex: 1; }
.drawer-group{ margin: 14px 0; }
.drawer-group-title{ font-size: 12px; color: var(--muted); font-weight: 600; margin-bottom: 8px; }

.drawer a{ display:block; padding: 12px 12px; border-radius: 14px; }
.drawer a:hover{ background: rgba(59,130,246,.08); }

.drawer-footer{ padding: 12px 14px; border-top: 1px solid var(--hairline); }
.drawer-logout{
  display:block;
  text-align:center;
  padding: 12px 10px;
  border-radius: 14px;
  background: rgba(59,130,246,.10);
  font-weight: 600;
}
body.drawer-lock{ overflow:hidden; }

/* =========================================================
   MODAL (confirm 등)
   ========================================================= */
.modal-layer{
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(2,6,23,.45);
}
.modal-layer.show{ display:flex; }

.modal-card{
  width: min(420px, calc(100% - 24px));
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(15,23,42,.10);
  border-radius: 18px;
  box-shadow: 0 24px 60px rgba(2,6,23,.18);
  overflow: hidden;
}
.modal-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
  padding: 12px 14px;
  border-bottom: 1px solid rgba(15,23,42,.08);
}
.modal-title{ font-weight: 900; letter-spacing: -.02em; }
.modal-body{
  padding: 14px;
  color: rgba(15,23,42,.92);
  font-weight: 600;
}
.modal-actions{
  display:flex;
  gap: 10px;
  padding: 12px 14px 14px;
  justify-content:flex-end;
}

/* =========================================================
   POSTCODE LAYER (your existing structure)
   ========================================================= */
#postcodeLayer{
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(0,0,0,.45);
}
#postcodeLayer[aria-hidden="false"]{ display: flex; }
#postcodeLayer[style*="display:block"],
#postcodeLayer[style*="display: block"]{ display:flex !important; }

#postcodeCard{
  width: min(520px, calc(100% - 24px));
  height: min(720px, calc(100vh - 24px));
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 12px 30px rgba(0,0,0,.25);
  display: flex;
  flex-direction: column;
}
#postcodeHead{
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  border-bottom: 1px solid #eee;
}
#postcodeTitle{ font-weight: 600; font-size: 14px; }
#postcodeWrap{ flex: 1; width: 100%; }
@media (max-width: 520px){
  #postcodeCard{ height: 75vh; }
}
body            { font-weight: 400; }
.kv-v           { font-weight: 400; }
.kv-k           { font-weight: 500; }
.card-title     { font-weight: 600; }
.btn, .badge    { font-weight: 600; }
.topbar h1      { font-weight: 700; }
/* =========================================================
   AUTH LOGIN (right aligned)
   ========================================================= */
.page-auth-login .auth-wrap{
  min-height: 100vh;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;                 /* ← 오른쪽 */
  padding: 12vh clamp(16px, 6vw, 120px) 0;   /* ← 위에서 내려오게 */
}

.page-auth-login .auth-card{
  width: min(420px, calc(100% - 32px));
  background: rgba(255,255,255,.92);
  border-radius: var(--radius);
  border: 1px solid var(--hairline);
  box-shadow: var(--shadow);
  padding: 16px;
}

/* auth 내부 요소 기본 정리(없어도 되지만 깔끔) */
.page-auth-login .auth-top{
  display:flex; align-items:flex-start; justify-content:space-between; gap: 12px;
  padding-bottom: 10px; margin-bottom: 12px;
  border-bottom: 1px solid var(--hairline);
}
.page-auth-login .auth-kicker{ font-size: 12px; color: var(--muted); font-weight: 600; }
.page-auth-login .auth-title{ margin: 4px 0 0; font-size: 18px; font-weight: 600; letter-spacing: -.03em; }
.page-auth-login .auth-sub{ margin: 6px 0 0; font-size: 12px; color: var(--muted); }
.page-auth-login .auth-bell{ opacity:.7; }

.page-auth-login .auth-hero{ margin: 10px 0 14px; text-align:center; }
.page-auth-login .auth-hero-title{ font-weight: 900; letter-spacing:-.02em; }
.page-auth-login .auth-hero-sub{ margin-top:4px; font-size:12px; color: var(--muted); }

/* =========================================================
   NOTICE (서버 오류/실시간 메시지 표시)
   ========================================================= */
.notice{
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid var(--hairline);
  background: rgba(255,255,255,.86);
  color: rgba(15,23,42,.92);
  font-weight: 600;
  font-size: 13px;
  box-shadow: var(--shadow-soft);
  margin: 10px 0;
}
.notice.success{
  background: linear-gradient(180deg, #fbfffc 0%, #effff4 100%);
  border-color: #aee1bd;
  color: #0d6f3c;
}
.notice.error{
  background: rgba(239,68,68,.10);
  border-color: rgba(239,68,68,.28);
  color: #b91c1c;
}
.notice.info{
  background: rgba(59,130,246,.08);
  border-color: rgba(59,130,246,.22);
  color: #1d4ed8;
}

/* =========================================================
   LOGIN CARD WIDTH (right aligned but compact)
   ========================================================= */
.page-auth-login .login-card{
  width: 420px;
  max-width: calc(100vw - 48px);
}

/* =========================================================
   TOGGLE SWITCH (final)
   ========================================================= */
.page-auth-login .toggle{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top: 6px;
}

.page-auth-login .toggle-label{
  font-size: 13px;
  font-weight: 600;
  color: var(--muted);
}

.page-auth-login .toggle-switch{
  position: relative;
  width: 44px;
  height: 26px;
}
.page-auth-login .toggle-switch input{
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
}
.page-auth-login .toggle-slider{
  position:absolute;
  inset:0;
  background: rgba(15,23,42,.18);
  border-radius: 999px;
  transition: background .2s ease;
}
.page-auth-login .toggle-slider::after{
  content:"";
  position:absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  background:#fff;
  border-radius:50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.25);
  transition: transform .2s ease;
}
.page-auth-login .toggle-switch input:checked + .toggle-slider{
  background: linear-gradient(180deg, var(--brand), var(--brand-2));
}
.page-auth-login .toggle-switch input:checked + .toggle-slider::after{
  transform: translateX(18px);
}
/* =========================================================
   LOGIN FORCE CENTER (override)
   ========================================================= */
.page-auth-login .auth-wrap{
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center !important; /* ← 기존 flex-end를 강제로 이김 */
  padding: 0 !important;
}

.page-auth-login .auth-card{
  width: 420px;
  max-width: calc(100vw - 48px);
  margin: 0 auto;
}
.page-auth-login .auth-wrap{ padding-top: 6vh !important; align-items: flex-start; }
/* =========================================================
   INSPECT UI UNIFIED (site_list + inspection pages)
   - trendy badge
   - row/slot hover tint by inspect type
   - cursor pointer for clickable rows/items
   ========================================================= */

/* 1) 뱃지 기본을 “요새 느낌”으로 통일 (기존 badge를 개선: 교체 성격) */
.badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
  border: 1px solid var(--hairline);
  background: rgba(255,255,255,.86);
  color: rgba(15,23,42,.86);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.65), 0 1px 2px rgba(2,6,23,.06);
}
.badge.small{ padding: 4px 9px; font-size: 11px; }

/* 2) 점검구분 뱃지 색(이미 있으면 그대로 유지되며, 없으면 보강) */
.badge.inspect-comp{  background: rgba(239,68,68,.10);  border-color: rgba(239,68,68,.28);  color: #b91c1c; }
.badge.inspect-oper{  background: rgba(59,130,246,.10); border-color: rgba(59,130,246,.28); color: #1d4ed8; }
.badge.inspect-alarm{ background: rgba(249,115,22,.12); border-color: rgba(249,115,22,.30); color: #c2410c; }
.badge.kind-public{   background: rgba(250,204,21,.18); border-color: rgba(250,204,21,.35); color: #854d0e; }

/* 3) “클릭 가능한 항목” 커서 통일
      - site_list: table row
      - 점검 등록/달력: 클릭 가능한 슬롯/리스트 (클래스가 다를 수 있으니 넓게 잡음)
*/
.page-inspection-schedule-edit .table tbody tr{ cursor: pointer; }
.page-inspection-schedule-form .table tbody tr{ cursor: pointer; }

/* 점검 등록 화면에서 “클릭되는 카드/리스트 아이템”도 손가락 */
.page-inspection-schedule-edit [data-clickable="1"],
.page-inspection-schedule-form [data-clickable="1"]{
  cursor: pointer;
}

/* 4) Hover tint (종합/작동/경보) — site_list + 점검 리스트/선택 영역에 공통 적용
      ✅ :has 사용 (크롬/엣지 OK)
*/

/* 기본 hover (타입 미확정) */
.page-site-list .table tbody tr:hover td,
.page-inspection-schedule-edit .table tbody tr:hover td,
.page-inspection-schedule-form .table tbody tr:hover td{
  background: rgba(59,130,246,.04);
}

/* 종합 */
.page-site-list .table tbody tr:has(.badge.inspect-comp):hover td,
.page-inspection-schedule-edit .table tbody tr:has(.badge.inspect-comp):hover td,
.page-inspection-schedule-form .table tbody tr:has(.badge.inspect-comp):hover td{
  background: rgba(239,68,68,.06);
}

/* 작동 */
.page-site-list .table tbody tr:has(.badge.inspect-oper):hover td,
.page-inspection-schedule-edit .table tbody tr:has(.badge.inspect-oper):hover td,
.page-inspection-schedule-form .table tbody tr:has(.badge.inspect-oper):hover td{
  background: rgba(59,130,246,.06);
}

/* 경보 */
.page-site-list .table tbody tr:has(.badge.inspect-alarm):hover td,
.page-inspection-schedule-edit .table tbody tr:has(.badge.inspect-alarm):hover td,
.page-inspection-schedule-form .table tbody tr:has(.badge.inspect-alarm):hover td{
  background: rgba(249,115,22,.07);
}

/* 공공기관 */
.page-site-list .table tbody tr:has(.badge.kind-public):hover td,
.page-inspection-schedule-edit .table tbody tr:has(.badge.kind-public):hover td,
.page-inspection-schedule-form .table tbody tr:has(.badge.kind-public):hover td{
  background: rgba(250,204,21,.12);
}

/* hover 시 뱃지를 살짝 또렷하게 */
.page-site-list .table tbody tr:hover .badge,
.page-inspection-schedule-edit .table tbody tr:hover .badge,
.page-inspection-schedule-form .table tbody tr:hover .badge{
  border-color: rgba(15,23,42,.14);
  filter: brightness(.99);
}

/* 5) 점검 등록 “선택된 아이템”에도 타입 tint 주고 싶을 때
      - JS에서 선택된 요소에 .is-selected만 붙이면 됨 (기존 구조 변경 없음)
*/
.page-inspection-schedule-edit .is-selected,
.page-inspection-schedule-form .is-selected{
  border-color: rgba(59,130,246,.35);
  box-shadow: 0 0 0 4px rgba(59,130,246,.12);
}
.page-inspection-schedule-edit .is-selected:has(.badge.inspect-comp),
.page-inspection-schedule-form .is-selected:has(.badge.inspect-comp){
  box-shadow: 0 0 0 4px rgba(239,68,68,.12);
  border-color: rgba(239,68,68,.30);
}
.page-inspection-schedule-edit .is-selected:has(.badge.inspect-oper),
.page-inspection-schedule-form .is-selected:has(.badge.inspect-oper){
  box-shadow: 0 0 0 4px rgba(59,130,246,.12);
  border-color: rgba(59,130,246,.30);
}
.page-inspection-schedule-edit .is-selected:has(.badge.inspect-alarm),
.page-inspection-schedule-form .is-selected:has(.badge.inspect-alarm){
  box-shadow: 0 0 0 4px rgba(249,115,22,.12);
  border-color: rgba(249,115,22,.30);
}
/* =========================================================
   STATUS BADGE (contract status)
   - matches status_badge_class(): success / warning / danger / outline
   ========================================================= */
.badge.success{
  background: rgba(250,204,21,.18); border-color: rgba(250,204,21,.35); color: #854d0e;
}
.badge.warning{
  background: rgba(250,204,21,.18);
  border-color: rgba(250,204,21,.35);
  color: #854d0e;
}

.badge.danger{
  background: rgba(239,68,68,.10);
  border-color: rgba(239,68,68,.28);
  color: #b91c1c;
}

/* outline은 이미 .badge.outline로 처리되고 있음(없으면 아래도 추가) */
.badge.outline{
  background: transparent;
  box-shadow: none;
}
/* =========================================================
   TOGGLE CHECK (multi contract types)
   ========================================================= */
.toggle-checks{
  display:flex;
  flex-wrap: wrap;
  gap: 10px;
}

.tcheck{
  display:inline-flex;
  align-items:center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid var(--hairline);
  background: rgba(255,255,255,.92);
  box-shadow: var(--shadow-soft);
  cursor:pointer;
  user-select:none;
}


.tcheck-ui{
  width: 44px;
  height: 26px;
  border-radius: 999px;
  background: rgba(15,23,42,.14);
  position: relative;
  transition: background .2s ease;
}

.tcheck-ui::after{
  content:"";
  position:absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  border-radius:50%;
  background:#fff;
  box-shadow: 0 2px 6px rgba(0,0,0,.25);
  transition: transform .2s ease;
}

.tcheck-label{
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
}

.tcheck input:checked + .tcheck-ui{
  background: linear-gradient(180deg, var(--brand), var(--brand-2));
}

.tcheck input:checked + .tcheck-ui::after{
  transform: translateX(18px);
}

.tcheck input:focus-visible + .tcheck-ui{
  box-shadow: 0 0 0 4px rgba(59,130,246,.16);
}

/* 계약구분 토글 체크 UI */
.toggle-checks{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}

.tcheck{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:8px 12px;
  border:1px solid var(--line, #e5e7eb);
  border-radius:999px;
  background:#fff;
  cursor:pointer;
  user-select:none;
}

.tcheck input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.tcheck-ui{
  width:34px;
  height:20px;
  border-radius:999px;
  background:#e5e7eb;
  position:relative;
  transition:background .15s ease;
  flex:0 0 auto;
}

.tcheck-ui::after{
  content:"";
  width:16px;
  height:16px;
  border-radius:50%;
  background:#fff;
  position:absolute;
  top:2px;
  left:2px;
  box-shadow:0 1px 2px rgba(0,0,0,.12);
  transition:transform .15s ease;
}

.tcheck input:checked + .tcheck-ui{
  background:#2563eb; /* 쿨톤 */
}
.tcheck input:checked + .tcheck-ui::after{
  transform:translateX(14px);
}

.contract-types-wrap .other-note{
  display:none;
  margin-top:10px;
}

/* Chrome/Edge OK */
.contract-types-wrap:has(input[name="has_other"]:checked) .other-note{
  display:block;
}
/* =========================
   Seg Toggle (공용)
   ========================= */
.seg{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px;
  border:1px solid var(--line, #e5e7eb);
  border-radius:999px;
  background:#fff;
}

.seg .seg-btn{
  appearance:none;
  border:1px solid transparent;
  background:transparent;
  padding:8px 12px;
  border-radius:999px;
  cursor:pointer;
  font-weight:500;
  color:rgba(15,23,42,.78);
  transition:background .15s ease, border-color .15s ease, color .15s ease;
}

.seg .seg-btn:hover{
  border-color:rgba(148,163,184,.65);
  background:rgba(148,163,184,.10);
}

.seg .seg-btn.is-active{
  color:#0f172a;
  border-color:rgba(148,163,184,.9);
  background:rgba(148,163,184,.14);
}

/* =========================
   타입별 활성(트렌디 톤)
   - 종합: 빨강
   - 작동: 파랑
   - 경보: 주황
   - 공공기관: 노랑
   ========================= */
.seg .seg-btn.is-active[data-value="종합"]{ background:rgba(239,68,68,.14); border-color:rgba(239,68,68,.35); }
.seg .seg-btn.is-active[data-value="작동"]{ background:rgba(59,130,246,.14); border-color:rgba(59,130,246,.35); }
.seg .seg-btn.is-active[data-value="경보"]{ background:rgba(249,115,22,.14); border-color:rgba(249,115,22,.35); }
.seg .seg-btn.is-active[data-value="공공기관"]{ background:rgba(234,179,8,.16); border-color:rgba(234,179,8,.40); }
/* =========================
   Daum Postcode Modal
   - #postcodeLayer, .addr-modal-inner, #postcodeWrap
   ========================= */
.addr-modal{
  position: fixed;
  inset: 0;
  display: none;          /* JS에서 block으로 켬 */
  z-index: 9999;
  background: rgba(15,23,42,.55);
  padding: 16px;
}

.addr-modal[aria-hidden="false"]{
  display: block;
}

.addr-modal-inner{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: min(560px, calc(100% - 24px));
  height: min(720px, calc(100% - 24px));
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 18px 50px rgba(0,0,0,.22);
  padding: 14px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* 헤더 행(제목/닫기) */
.addr-modal-inner .row{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

/* 실제 daum embed가 들어갈 영역: 높이 반드시 필요 */
#postcodeWrap{
  flex: 1;
  min-height: 520px;      /* ✅ 이거 없으면 iframe이 안 보일 수 있음 */
  margin-top: 12px;
  border: 1px solid rgba(148,163,184,.45);
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
}
/* =========================
 * Address Postcode Layer UI (공용)
 * - footer.php #postcodeLayer
 * ========================= */

.addr-layer {
  position: fixed;
  inset: 0;
  z-index: 9999;
}

.addr-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.35);
}

.addr-card {
  position: relative;
  width: min(520px, calc(100% - 32px));
  margin: 72px auto 0;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 18px 60px rgba(0,0,0,.25);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  max-height: 80vh; /* ✅ 2) 너무 크지 않게 */
}

.addr-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px;
  border-bottom: 1px solid rgba(0,0,0,.08);
  background: #fff;
}

.addr-title-wrap { display: flex; flex-direction: column; gap: 2px; }

.addr-title {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
}

.addr-sub {
  font-size: 12px;
  color: rgba(0,0,0,.55);
  line-height: 1.2;
}

.addr-body {
  padding: 0;
  background: #fff;
  flex: 1 1 auto;
  min-height: 0; /* flex 내부 스크롤 안정 */
}

/* ✅ 핵심: wrap 높이 고정/안정화 + 모달 내부에 꽉 차게 */
#postcodeWrap {
  width: 100%;
  height: 460px;     /* ✅ 2) 520 → 460 추천값 */
  min-height: 460px;
}

/* 하단 안내 */
.addr-foot {
  padding: 10px 14px 12px;
  border-top: 1px solid rgba(0,0,0,.08);
  font-size: 12px;
  color: rgba(0,0,0,.55);
  text-align: center;
  background: #fff;
}

/* 닫기 버튼 (기존 icon-btn 있을 경우 자연스럽게) */
.addr-head .icon-btn {
  width: 32px;
  height: 32px;
  border-radius: 10px;
}

/* =========================
 * 3) 모바일: 하단 슬라이드(바텀 시트)
 * ========================= */
@media (max-width: 640px) {
  .addr-card {
    width: 100%;
    margin: 0;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;

    border-radius: 18px 18px 0 0;
    max-height: 82vh;
  }

  /* 바텀시트 느낌: 상단 여백 제거 */
  #postcodeWrap {
    height: 52vh;       /* 화면에 맞춰 */
    min-height: 52vh;
  }
}
/* user_list row clickable */
tr.clickable-row {
  cursor: pointer;
  transition: background-color .15s ease;
}

tr.clickable-row:hover {
  background-color: rgba(0,0,0,.035);
}


/* =========================================================
   SITE MODULE CARD UI PATCH v1
   - site pages finance-like colored card UI
   - scoped only to page-site-*
   ========================================================= */
body[class*="page-site"]{
  --site-blue:#2f6de7;
  --site-blue2:#4e89ff;
  --site-green:#16a34a;
  --site-red:#e64b3c;
  --site-orange:#d88716;
  --site-yellow:#f2b84b;
  --site-line:#cfe0f6;
  --site-soft:#f6faff;
}

body[class*="page-site"] .container{
  max-width: 1120px;
}

body[class*="page-site"] h2{
  margin: 0;
  display:inline-flex;
  align-items:center;
  gap: 10px;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid #bcd1f5;
  background: linear-gradient(180deg, #ffffff 0%, #eef5ff 100%);
  color:#062758;
  font-size: 20px;
  font-weight: 950;
  letter-spacing: -0.7px;
  box-shadow: 0 10px 24px rgba(47,109,231,.10);
}

body[class*="page-site"] .card{
  border: 1px solid var(--site-line) !important;
  border-radius: 26px !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(248,251,255,.98) 100%) !important;
  box-shadow: 0 16px 36px rgba(28, 54, 89, .10) !important;
  padding: 16px !important;
  overflow: visible;
}

body[class*="page-site"] .card + .card,
body[class*="page-site"] section.card{
  margin-top: 14px;
}

body[class*="page-site"] .card-header{
  min-height: 42px;
  padding: 0 0 12px !important;
  margin: 0 0 14px !important;
  border-bottom: 1px solid #e2ecf8 !important;
}

body[class*="page-site"] .card-title{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid #bed2f4;
  background: linear-gradient(180deg, #ffffff 0%, #edf5ff 100%);
  color:#123e77;
  font-size: 14px;
  font-weight: 950;
  box-shadow: 0 8px 18px rgba(47,109,231,.08);
}

body[class*="page-site"] .card-title::before{
  width: 9px;
  height: 9px;
  background: linear-gradient(180deg, var(--site-blue2), var(--site-blue));
  box-shadow: 0 0 0 4px rgba(47,109,231,.14);
}

body[class*="page-site"] .card-body{
  padding: 0 !important;
}

body[class*="page-site"] .input,
body[class*="page-site"] select.input,
body[class*="page-site"] textarea.input{
  min-height: 44px;
  border-radius: 14px !important;
  border: 1px solid #c7d8f0 !important;
  background: rgba(255,255,255,.92) !important;
  color:#0b2447;
  font-weight: 800;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}

body[class*="page-site"] textarea.input{
  padding-top: 12px;
}

body[class*="page-site"] .input:focus{
  border-color: #4e89ff !important;
  box-shadow: 0 0 0 4px rgba(78,137,255,.16) !important;
}

body[class*="page-site"] .btn{
  min-height: 42px;
  border-radius: 14px !important;
  font-weight: 950 !important;
  border: 1px solid #c7d8f0 !important;
  background: linear-gradient(180deg, #ffffff 0%, #f3f7ff 100%) !important;
  color:#15385f !important;
  box-shadow: 0 10px 22px rgba(28,54,89,.08);
}

body[class*="page-site"] .btn.primary{
  border-color:#2f6de7 !important;
  background: linear-gradient(180deg, #4e89ff 0%, #2f6de7 100%) !important;
  color:#fff !important;
  box-shadow: 0 14px 26px rgba(47,109,231,.24) !important;
}

body[class*="page-site"] .btn.danger{
  border-color:#f0aaa0 !important;
  background: linear-gradient(180deg, #fff8f6 0%, #fff0ec 100%) !important;
  color:#b83223 !important;
}

body[class*="page-site"] .notice{
  border-radius: 18px !important;
  border: 1px solid #d5e2f4 !important;
  background: linear-gradient(180deg, #ffffff 0%, #f5f9ff 100%) !important;
  box-shadow: 0 8px 18px rgba(28,54,89,.07);
}

body[class*="page-site"] .notice.success{
  border-color:#aee1bd !important;
  background: linear-gradient(180deg, #fbfffc 0%, #effff4 100%) !important;
  color:#0d6f3c !important;
}

body[class*="page-site"] .notice.error,
body[class*="page-site"] .site-js-error{
  border-color:#f0aaa0 !important;
  background: linear-gradient(180deg, #fffdfc 0%, #fff0ed 100%) !important;
  color:#a9271a !important;
}

body[class*="page-site"] .kv{
  gap: 14px !important;
}

body[class*="page-site"] .kv-item{
  padding: 14px 16px !important;
  border: 1px solid #d8e4f4 !important;
  border-radius: 20px !important;
  background: linear-gradient(180deg, rgba(255,255,255,.95) 0%, rgba(248,251,255,.98) 100%) !important;
  box-shadow: 0 12px 24px rgba(28,54,89,.08) !important;
}

body[class*="page-site"] .kv-k{
  flex-basis: 112px !important;
  color:#486079 !important;
  font-size: 12px !important;
  font-weight: 950 !important;
}

body[class*="page-site"] .kv-v{
  color:#0b2447 !important;
  font-size: 14px !important;
  font-weight: 800 !important;
}

body[class*="page-site"] .subcard,
body[class*="page-site"] .building-block{
  border: 1px solid #d6e4f5 !important;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%) !important;
  border-radius: 24px !important;
  box-shadow: 0 14px 28px rgba(28,54,89,.08) !important;
}

body[class*="page-site"] .building-block .card-header{
  background: linear-gradient(180deg, #f7fbff 0%, #edf5ff 100%);
  border-radius: 18px;
  padding: 12px !important;
  margin-bottom: 12px !important;
}

body[class*="page-site"] .seg{
  border-color:#c9d9f5 !important;
  background: #f8fbff !important;
  padding: 5px !important;
  border-radius: 999px !important;
}

body[class*="page-site"] .seg .seg-btn{
  min-height: 36px;
  padding: 8px 13px !important;
  font-weight: 950 !important;
  color:#486079 !important;
}

body[class*="page-site"] .seg .seg-btn.is-active{
  color:#fff !important;
  border-color:#2f6de7 !important;
  background: linear-gradient(180deg, #4e89ff 0%, #2f6de7 100%) !important;
  box-shadow: 0 8px 16px rgba(47,109,231,.20);
}

body[class*="page-site"] .seg .seg-btn.is-active[data-value="종합"]{
  border-color:#e64b3c !important;
  background: linear-gradient(180deg, #ff7a66 0%, #e64b3c 100%) !important;
}

body[class*="page-site"] .seg .seg-btn.is-active[data-value="작동"]{
  border-color:#1f67ff !important;
  background: linear-gradient(180deg, #4e89ff 0%, #2f6de7 100%) !important;
}

body[class*="page-site"] .seg .seg-btn.is-active[data-value="경보"]{
  border-color:#d88716 !important;
  background: linear-gradient(180deg, #ffb34d 0%, #e28a17 100%) !important;
}

body[class*="page-site"] .seg .seg-btn.is-active[data-value="공공기관"]{
  border-color:#e5b24f !important;
  background: linear-gradient(180deg, #ffe182 0%, #e7b633 100%) !important;
  color:#5b3b00 !important;
}

body[class*="page-site"] .tcheck{
  border-color:#d2e0f4 !important;
  background: linear-gradient(180deg, #ffffff 0%, #f6faff 100%) !important;
  border-radius: 16px !important;
  box-shadow: 0 10px 20px rgba(28,54,89,.07) !important;
}

body[class*="page-site"] .tcheck:has(input:checked){
  border-color:#77b7ff !important;
  background: linear-gradient(180deg, #f8fcff 0%, #ecf6ff 100%) !important;
}

body[class*="page-site"] .tcheck-label{
  font-weight: 950 !important;
  color:#123e77 !important;
}

body[class*="page-site"] .badge{
  font-weight: 950 !important;
  border-radius: 999px !important;
}

body[class*="page-site"] .badge.success,
body[class*="page-site"] .badge.in{
  background: #ecfff2 !important;
  border-color:#aee1bd !important;
  color:#167238 !important;
}

body[class*="page-site"] .badge.danger,
body[class*="page-site"] .badge.out{
  background: #fff0ed !important;
  border-color:#f0aaa0 !important;
  color:#c44231 !important;
}

body[class*="page-site"] .badge.outline{
  background: #f6f9ff !important;
  border-color:#d4e2f5 !important;
  color:#3d5572 !important;
}

/* site list table as colored card rows */
.page-site-list .card:has(.table){
  background: transparent !important;
  box-shadow: none !important;
  border-color: transparent !important;
  padding: 0 !important;
}

.page-site-list .table{
  border-collapse: separate !important;
  border-spacing: 0 10px !important;
  min-width: 880px;
}

.page-site-list .table thead th{
  background: transparent !important;
  border: 0 !important;
  color:#486079 !important;
  font-weight: 950 !important;
}

.page-site-list .table tbody tr{
  cursor: pointer;
}

.page-site-list .table tbody td{
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%) !important;
  border-top: 1px solid #d8e4f4 !important;
  border-bottom: 1px solid #d8e4f4 !important;
  color:#0b2447 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  padding: 15px 12px !important;
  transition: transform .16s ease, box-shadow .18s ease, background .18s ease;
}

.page-site-list .table tbody td:first-child{
  border-left: 1px solid #d8e4f4 !important;
  border-radius: 18px 0 0 18px !important;
}

.page-site-list .table tbody td:last-child{
  border-right: 1px solid #d8e4f4 !important;
  border-radius: 0 18px 18px 0 !important;
}

.page-site-list .table tbody tr:hover td{
  background: linear-gradient(180deg, #ffffff 0%, #eef5ff 100%) !important;
  box-shadow: 0 14px 24px rgba(28,54,89,.08);
}

.page-site-list .table tbody tr:has(.badge.inspect-comp) td{
  border-color:#f4c7bf !important;
}

.page-site-list .table tbody tr:has(.badge.inspect-oper) td{
  border-color:#bfd4f8 !important;
}

.page-site-list .table tbody tr:has(.badge.inspect-alarm) td{
  border-color:#f5d3a9 !important;
}

/* validation */
body[class*="page-site"] .site-js-error{
  margin: 0 0 14px !important;
  padding: 14px 16px !important;
  border-radius: 18px !important;
  font-weight: 900;
}

body[class*="page-site"] .site-js-error strong{
  display:block;
  margin-bottom: 6px;
  font-size: 14px;
}

body[class*="page-site"] .site-js-error ul{
  margin: 6px 0 0 18px;
  padding: 0;
}

body[class*="page-site"] .site-js-error li{
  margin: 3px 0;
  font-size: 13px;
}

body[class*="page-site"] .input.is-invalid,
body[class*="page-site"] .seg.is-invalid,
body[class*="page-site"] .toggle-checks.is-invalid{
  border-color:#ef6b5d !important;
  box-shadow: 0 0 0 4px rgba(230,75,60,.13) !important;
  background: #fff7f5 !important;
}

body[class*="page-site"] .kv-item:has(.is-invalid){
  border-color:#efb0a5 !important;
  background: linear-gradient(180deg, #fffdfc 0%, #fff4f1 100%) !important;
}

@media (max-width: 760px){
  body[class*="page-site"] .kv-item{
    display:grid !important;
    gap: 8px !important;
  }
  body[class*="page-site"] .kv-k{
    flex-basis:auto !important;
  }
  .page-site-list .table{
    min-width: 760px;
  }
}


/* =========================================================
   SITE MODULE SECTION COLOR + LIST WRAP PATCH v2
   - 섹션별 색감 강화
   - 목록 테이블 흰색 카드로 감싸기
   ========================================================= */

/* 기본 카드 여백/섹션 구분 강화 */
body[class*="page-site"] section.card,
body[class*="page-site"] .card.section-card{
  position: relative;
  padding: 18px !important;
  border-radius: 28px !important;
  overflow: hidden;
}

body[class*="page-site"] section.card::before{
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  opacity: .95;
  border-radius: 28px 0 0 28px;
  background: linear-gradient(180deg, #4e89ff 0%, #2f6de7 100%);
}

body[class*="page-site"] section.card .card-header,
body[class*="page-site"] section.card .card-body{
  position: relative;
  z-index: 1;
}

/* 페이지별/순서별 섹션 색상 */
.page-site-view section.card:nth-of-type(1),
.page-site-create section.card:nth-of-type(1),
.page-site-edit section.card:nth-of-type(1){
  border-color: #b8cff8 !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(78,137,255,.13) 0%, transparent 36%),
    linear-gradient(180deg, #ffffff 0%, #f3f8ff 100%) !important;
}
.page-site-view section.card:nth-of-type(1)::before,
.page-site-create section.card:nth-of-type(1)::before,
.page-site-edit section.card:nth-of-type(1)::before{
  background: linear-gradient(180deg, #4e89ff 0%, #2f6de7 100%);
}
.page-site-view section.card:nth-of-type(1) .card-title,
.page-site-create section.card:nth-of-type(1) .card-title,
.page-site-edit section.card:nth-of-type(1) .card-title{
  border-color:#b8cff8 !important;
  background: linear-gradient(180deg, #ffffff 0%, #eaf2ff 100%) !important;
  color:#0749b5 !important;
}

.page-site-view section.card:nth-of-type(2),
.page-site-create section.card:nth-of-type(2),
.page-site-edit section.card:nth-of-type(2){
  border-color: #aee1bd !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(22,163,74,.12) 0%, transparent 36%),
    linear-gradient(180deg, #ffffff 0%, #f0fff5 100%) !important;
}
.page-site-view section.card:nth-of-type(2)::before,
.page-site-create section.card:nth-of-type(2)::before,
.page-site-edit section.card:nth-of-type(2)::before{
  background: linear-gradient(180deg, #35c876 0%, #16a34a 100%);
}
.page-site-view section.card:nth-of-type(2) .card-title,
.page-site-create section.card:nth-of-type(2) .card-title,
.page-site-edit section.card:nth-of-type(2) .card-title{
  border-color:#aee1bd !important;
  background: linear-gradient(180deg, #ffffff 0%, #eafff1 100%) !important;
  color:#0d6f3c !important;
}

.page-site-view section.card:nth-of-type(3),
.page-site-create section.card:nth-of-type(3),
.page-site-edit section.card:nth-of-type(3){
  border-color: #f2d18b !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(226,138,23,.13) 0%, transparent 36%),
    linear-gradient(180deg, #ffffff 0%, #fff8e8 100%) !important;
}
.page-site-view section.card:nth-of-type(3)::before,
.page-site-create section.card:nth-of-type(3)::before,
.page-site-edit section.card:nth-of-type(3)::before{
  background: linear-gradient(180deg, #ffbd5b 0%, #e28a17 100%);
}
.page-site-view section.card:nth-of-type(3) .card-title,
.page-site-create section.card:nth-of-type(3) .card-title,
.page-site-edit section.card:nth-of-type(3) .card-title{
  border-color:#f2d18b !important;
  background: linear-gradient(180deg, #ffffff 0%, #fff2d7 100%) !important;
  color:#7a4a00 !important;
}

.page-site-view section.card:nth-of-type(4),
.page-site-create section.card:nth-of-type(4),
.page-site-edit section.card:nth-of-type(4){
  border-color: #d2c3f8 !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(111,76,217,.12) 0%, transparent 36%),
    linear-gradient(180deg, #ffffff 0%, #f6f2ff 100%) !important;
}
.page-site-view section.card:nth-of-type(4)::before,
.page-site-create section.card:nth-of-type(4)::before,
.page-site-edit section.card:nth-of-type(4)::before{
  background: linear-gradient(180deg, #9172ff 0%, #6f4cd9 100%);
}
.page-site-view section.card:nth-of-type(4) .card-title,
.page-site-create section.card:nth-of-type(4) .card-title,
.page-site-edit section.card:nth-of-type(4) .card-title{
  border-color:#d2c3f8 !important;
  background: linear-gradient(180deg, #ffffff 0%, #f1ebff 100%) !important;
  color:#4b2fb5 !important;
}

.page-site-view section.card:nth-of-type(5),
.page-site-create section.card:nth-of-type(5),
.page-site-edit section.card:nth-of-type(5){
  border-color: #f0aaa0 !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(230,75,60,.11) 0%, transparent 36%),
    linear-gradient(180deg, #ffffff 0%, #fff4f1 100%) !important;
}
.page-site-view section.card:nth-of-type(5)::before,
.page-site-create section.card:nth-of-type(5)::before,
.page-site-edit section.card:nth-of-type(5)::before{
  background: linear-gradient(180deg, #ff7a66 0%, #e64b3c 100%);
}
.page-site-view section.card:nth-of-type(5) .card-title,
.page-site-create section.card:nth-of-type(5) .card-title,
.page-site-edit section.card:nth-of-type(5) .card-title{
  border-color:#f0aaa0 !important;
  background: linear-gradient(180deg, #ffffff 0%, #fff0ed 100%) !important;
  color:#b83223 !important;
}

/* 섹션 내부 값 카드도 섹션 배경에 맞게 더 가볍게 */
body[class*="page-site"] section.card .kv-item{
  background: rgba(255,255,255,.78) !important;
  backdrop-filter: blur(2px);
}

body[class*="page-site"] section.card .kv-item:hover{
  transform: translateY(-1px);
  box-shadow: 0 16px 26px rgba(28,54,89,.10) !important;
}

/* 대표/연락처 pill 정리 */
body[class*="page-site"] .kv-v .badge,
body[class*="page-site"] .contact-pill,
body[class*="page-site"] .manager-pill{
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 10px;
  border-radius: 999px;
  border: 1px solid #cfe0f6;
  background: rgba(255,255,255,.82);
  color:#173b6d;
  font-size: 12px;
  font-weight: 950;
}

/* 목록 페이지: 필터/목록 카드 색상 */
.page-site-list section.card:nth-of-type(1),
.page-site-list .card.filter-card{
  border-color:#b8cff8 !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(78,137,255,.13) 0%, transparent 36%),
    linear-gradient(180deg, #ffffff 0%, #f3f8ff 100%) !important;
}

.page-site-list section.card:nth-of-type(1)::before{
  background: linear-gradient(180deg, #4e89ff 0%, #2f6de7 100%);
}

.page-site-list section.card:nth-of-type(2),
.page-site-list .card.list-card,
.page-site-list .card:has(.table){
  margin-top: 18px !important;
  padding: 18px !important;
  border: 1px solid #cfe0f6 !important;
  border-radius: 28px !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(78,137,255,.10) 0%, transparent 36%),
    linear-gradient(180deg, #ffffff 0%, #f8fbff 100%) !important;
  box-shadow: 0 18px 38px rgba(28,54,89,.11) !important;
  overflow: hidden !important;
}

.page-site-list .card:has(.table)::before{
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  border-radius: 28px 0 0 28px;
  background: linear-gradient(180deg, #4e89ff 0%, #2f6de7 100%);
}

.page-site-list .table-wrap,
.page-site-list .table-responsive{
  position: relative;
  z-index: 1;
  padding: 4px 0 0;
  border-radius: 22px;
  overflow-x: auto;
}

.page-site-list .table{
  width: 100%;
  margin: 0 !important;
  border-spacing: 0 10px !important;
}

.page-site-list .table tbody tr{
  position: relative;
}

.page-site-list .table tbody td{
  background: rgba(255,255,255,.90) !important;
}

.page-site-list .table tbody tr:hover td{
  background: linear-gradient(180deg, #ffffff 0%, #eef5ff 100%) !important;
}

/* 목록 행 구분색 더 명확하게 */
.page-site-list .table tbody tr:has(.badge.inspect-comp) td{
  background: linear-gradient(180deg, #fffdfc 0%, #fff5f2 100%) !important;
  border-color:#f0aaa0 !important;
}

.page-site-list .table tbody tr:has(.badge.inspect-oper) td{
  background: linear-gradient(180deg, #ffffff 0%, #f1f6ff 100%) !important;
  border-color:#b8cff8 !important;
}

.page-site-list .table tbody tr:has(.badge.inspect-alarm) td{
  background: linear-gradient(180deg, #ffffff 0%, #fff7e8 100%) !important;
  border-color:#f2d18b !important;
}

/* 목록 제목 카드 */
.page-site-list .card-title,
.page-site-list h2{
  box-shadow: 0 10px 22px rgba(47,109,231,.12);
}

/* 모바일에서는 목록 카드 여백 줄임 */
@media (max-width: 760px){
  .page-site-list .card:has(.table){
    padding: 12px !important;
    border-radius: 22px !important;
  }

  body[class*="page-site"] section.card{
    padding: 14px !important;
    border-radius: 22px !important;
  }

  body[class*="page-site"] section.card::before{
    border-radius: 22px 0 0 22px;
  }
}


/* =========================================================
   SITE VIEW SECTION COLOR + KIND BADGES PATCH v3
   - 실제 site_view 구조(div.card)에 섹션 색 적용
   - 종합/작동/공공기관/경보 배지 색상 강화
   ========================================================= */

/* site_view는 section이 아니라 .container 직속 .card 구조라 여기서 직접 색상 적용 */
.page-site-view .container > .card{
  position: relative;
  padding: 18px !important;
  border-radius: 28px !important;
  overflow: hidden !important;
}

.page-site-view .container > .card::before{
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  border-radius: 28px 0 0 28px;
  background: linear-gradient(180deg, #4e89ff 0%, #2f6de7 100%);
}

.page-site-view .container > .card > .card-header,
.page-site-view .container > .card > .card-body,
.page-site-view .container > .card > .kv,
.page-site-view .container > .card > .stack{
  position: relative;
  z-index: 1;
}

/* 1. 기본정보 - 파랑 */
.page-site-view .container > .card:nth-of-type(1){
  border-color:#b8cff8 !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(78,137,255,.16) 0%, transparent 38%),
    linear-gradient(180deg, #ffffff 0%, #f2f7ff 100%) !important;
}
.page-site-view .container > .card:nth-of-type(1)::before{
  background: linear-gradient(180deg, #4e89ff 0%, #2f6de7 100%);
}
.page-site-view .container > .card:nth-of-type(1) .card-title{
  border-color:#b8cff8 !important;
  background: linear-gradient(180deg, #ffffff 0%, #eaf2ff 100%) !important;
  color:#0749b5 !important;
}
.page-site-view .container > .card:nth-of-type(1) .card-title::before{
  background: linear-gradient(180deg, #4e89ff 0%, #2f6de7 100%) !important;
  box-shadow: 0 0 0 4px rgba(47,109,231,.16) !important;
}

/* 2. 계약정보 - 초록 */
.page-site-view .container > .card:nth-of-type(2){
  border-color:#aee1bd !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(22,163,74,.15) 0%, transparent 38%),
    linear-gradient(180deg, #ffffff 0%, #effff4 100%) !important;
}
.page-site-view .container > .card:nth-of-type(2)::before{
  background: linear-gradient(180deg, #35c876 0%, #16a34a 100%);
}
.page-site-view .container > .card:nth-of-type(2) .card-title{
  border-color:#aee1bd !important;
  background: linear-gradient(180deg, #ffffff 0%, #eafff1 100%) !important;
  color:#0d6f3c !important;
}
.page-site-view .container > .card:nth-of-type(2) .card-title::before{
  background: linear-gradient(180deg, #35c876 0%, #16a34a 100%) !important;
  box-shadow: 0 0 0 4px rgba(22,163,74,.15) !important;
}

/* 3. 대표자/소방안전관리자/관계인 - 주황 */
.page-site-view .container > .card:nth-of-type(3){
  border-color:#f2d18b !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(226,138,23,.16) 0%, transparent 38%),
    linear-gradient(180deg, #ffffff 0%, #fff8e8 100%) !important;
}
.page-site-view .container > .card:nth-of-type(3)::before{
  background: linear-gradient(180deg, #ffbd5b 0%, #e28a17 100%);
}
.page-site-view .container > .card:nth-of-type(3) .card-title{
  border-color:#f2d18b !important;
  background: linear-gradient(180deg, #ffffff 0%, #fff2d7 100%) !important;
  color:#7a4a00 !important;
}
.page-site-view .container > .card:nth-of-type(3) .card-title::before{
  background: linear-gradient(180deg, #ffbd5b 0%, #e28a17 100%) !important;
  box-shadow: 0 0 0 4px rgba(226,138,23,.15) !important;
}

/* 4. 건물 - 보라 */
.page-site-view .container > .card:nth-of-type(4){
  border-color:#d2c3f8 !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(111,76,217,.14) 0%, transparent 38%),
    linear-gradient(180deg, #ffffff 0%, #f6f2ff 100%) !important;
}
.page-site-view .container > .card:nth-of-type(4)::before{
  background: linear-gradient(180deg, #9172ff 0%, #6f4cd9 100%);
}
.page-site-view .container > .card:nth-of-type(4) .card-title{
  border-color:#d2c3f8 !important;
  background: linear-gradient(180deg, #ffffff 0%, #f1ebff 100%) !important;
  color:#4b2fb5 !important;
}
.page-site-view .container > .card:nth-of-type(4) .card-title::before{
  background: linear-gradient(180deg, #9172ff 0%, #6f4cd9 100%) !important;
  box-shadow: 0 0 0 4px rgba(111,76,217,.14) !important;
}

/* 5번째 이후 - 붉은 보조 */
.page-site-view .container > .card:nth-of-type(n+5){
  border-color:#f0aaa0 !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(230,75,60,.12) 0%, transparent 38%),
    linear-gradient(180deg, #ffffff 0%, #fff4f1 100%) !important;
}
.page-site-view .container > .card:nth-of-type(n+5)::before{
  background: linear-gradient(180deg, #ff7a66 0%, #e64b3c 100%);
}
.page-site-view .container > .card:nth-of-type(n+5) .card-title{
  border-color:#f0aaa0 !important;
  background: linear-gradient(180deg, #ffffff 0%, #fff0ed 100%) !important;
  color:#b83223 !important;
}
.page-site-view .container > .card:nth-of-type(n+5) .card-title::before{
  background: linear-gradient(180deg, #ff7a66 0%, #e64b3c 100%) !important;
  box-shadow: 0 0 0 4px rgba(230,75,60,.13) !important;
}

/* 등록/수정 화면도 .card 직접 구조일 수 있어서 보강 */
.page-site-create .container > form > .stack > .card,
.page-site-edit .container > form > .stack > .card{
  position: relative;
  overflow: hidden !important;
}

.page-site-create .container > form > .stack > .card::before,
.page-site-edit .container > form > .stack > .card::before{
  content:'';
  position:absolute;
  inset: 0 auto 0 0;
  width:5px;
  border-radius: 28px 0 0 28px;
}

.page-site-create .container > form > .stack > .card:nth-of-type(1),
.page-site-edit .container > form > .stack > .card:nth-of-type(1){
  border-color:#b8cff8 !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(78,137,255,.15) 0%, transparent 38%),
    linear-gradient(180deg, #ffffff 0%, #f2f7ff 100%) !important;
}
.page-site-create .container > form > .stack > .card:nth-of-type(1)::before,
.page-site-edit .container > form > .stack > .card:nth-of-type(1)::before{
  background: linear-gradient(180deg, #4e89ff 0%, #2f6de7 100%);
}

.page-site-create .container > form > .stack > .card:nth-of-type(2),
.page-site-edit .container > form > .stack > .card:nth-of-type(2){
  border-color:#aee1bd !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(22,163,74,.15) 0%, transparent 38%),
    linear-gradient(180deg, #ffffff 0%, #effff4 100%) !important;
}
.page-site-create .container > form > .stack > .card:nth-of-type(2)::before,
.page-site-edit .container > form > .stack > .card:nth-of-type(2)::before{
  background: linear-gradient(180deg, #35c876 0%, #16a34a 100%);
}

.page-site-create .container > form > .stack > .card:nth-of-type(3),
.page-site-edit .container > form > .stack > .card:nth-of-type(3){
  border-color:#f2d18b !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(226,138,23,.16) 0%, transparent 38%),
    linear-gradient(180deg, #ffffff 0%, #fff8e8 100%) !important;
}
.page-site-create .container > form > .stack > .card:nth-of-type(3)::before,
.page-site-edit .container > form > .stack > .card:nth-of-type(3)::before{
  background: linear-gradient(180deg, #ffbd5b 0%, #e28a17 100%);
}

.page-site-create .container > form > .stack > .card:nth-of-type(4),
.page-site-edit .container > form > .stack > .card:nth-of-type(4){
  border-color:#d2c3f8 !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(111,76,217,.14) 0%, transparent 38%),
    linear-gradient(180deg, #ffffff 0%, #f6f2ff 100%) !important;
}
.page-site-create .container > form > .stack > .card:nth-of-type(4)::before,
.page-site-edit .container > form > .stack > .card:nth-of-type(4)::before{
  background: linear-gradient(180deg, #9172ff 0%, #6f4cd9 100%);
}

.page-site-create .container > form > .stack > .card > .card-header,
.page-site-edit .container > form > .stack > .card > .card-header,
.page-site-create .container > form > .stack > .card > .card-body,
.page-site-edit .container > form > .stack > .card > .card-body{
  position: relative;
  z-index: 1;
}

/* 종합/작동/공공기관/경보 배지 색상 */
body[class*="page-site"] .badge.bt-comp,
body[class*="page-site"] .badge.inspect-comp,
body[class*="page-site"] .badge[data-value="종합"]{
  border-color:#f0aaa0 !important;
  background: linear-gradient(180deg, #fff8f6 0%, #fff0ed 100%) !important;
  color:#c44231 !important;
}

body[class*="page-site"] .badge.bt-op,
body[class*="page-site"] .badge.inspect-oper,
body[class*="page-site"] .badge[data-value="작동"]{
  border-color:#b8cff8 !important;
  background: linear-gradient(180deg, #ffffff 0%, #eef5ff 100%) !important;
  color:#235ebb !important;
}

body[class*="page-site"] .badge.bt-alm,
body[class*="page-site"] .badge.kind-public,
body[class*="page-site"] .badge.inspect-alarm,
body[class*="page-site"] .badge[data-value="공공기관"],
body[class*="page-site"] .badge[data-value="경보"]{
  border-color:#f2d18b !important;
  background: linear-gradient(180deg, #fffdf7 0%, #fff2d7 100%) !important;
  color:#8a5200 !important;
}

/* active 선택 버튼도 더 잘 보이게 */
body[class*="page-site"] .seg .seg-btn.is-active[data-value="종합"]{
  border-color:#e64b3c !important;
  background: linear-gradient(180deg, #ff7a66 0%, #e64b3c 100%) !important;
  color:#fff !important;
}

body[class*="page-site"] .seg .seg-btn.is-active[data-value="작동"]{
  border-color:#2f6de7 !important;
  background: linear-gradient(180deg, #4e89ff 0%, #2f6de7 100%) !important;
  color:#fff !important;
}

body[class*="page-site"] .seg .seg-btn.is-active[data-value="공공기관"],
body[class*="page-site"] .seg .seg-btn.is-active[data-value="경보"]{
  border-color:#e5b24f !important;
  background: linear-gradient(180deg, #ffe182 0%, #e7b633 100%) !important;
  color:#5b3b00 !important;
}

/* 건물 소카드도 대상구분 배지 주변 색감 */
.page-site-view .subcard{
  background: rgba(255,255,255,.82) !important;
  border-color: rgba(190,210,244,.9) !important;
}

.page-site-view .subcard .card-header{
  border-bottom: 1px solid #d9e6f6 !important;
}

@media (max-width:760px){
  .page-site-view .container > .card::before,
  .page-site-create .container > form > .stack > .card::before,
  .page-site-edit .container > form > .stack > .card::before{
    width:4px;
    border-radius: 22px 0 0 22px;
  }
}


/* =========================================================
   SITE VIEW EXPLICIT SECTION COLORS PATCH v4
   - site_view.php explicit classes
   - top basic info cells + section-specific colors
   ========================================================= */
.page-site-view .site-view-section{
  position: relative;
  padding: 20px !important;
  border-radius: 30px !important;
  overflow: hidden !important;
}

.page-site-view .site-view-section::before{
  content:'';
  position:absolute;
  inset:0 auto 0 0;
  width:6px;
  border-radius:30px 0 0 30px;
  z-index:0;
}

.page-site-view .site-view-section > *{
  position:relative;
  z-index:1;
}

.page-site-view .site-view-section .card-header{
  padding-bottom:14px !important;
  margin-bottom:16px !important;
}

.page-site-view .site-section-basic{
  border-color:#9fc3ff !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(47,109,231,.20) 0%, transparent 38%),
    linear-gradient(180deg, #ffffff 0%, #edf5ff 100%) !important;
}
.page-site-view .site-section-basic::before{
  background:linear-gradient(180deg,#4e89ff 0%,#2f6de7 100%);
}
.page-site-view .site-section-basic .card-title{
  border-color:#9fc3ff !important;
  background:linear-gradient(180deg,#ffffff 0%,#e5f0ff 100%) !important;
  color:#0749b5 !important;
}
.page-site-view .site-section-basic .card-title::before{
  background:linear-gradient(180deg,#4e89ff 0%,#2f6de7 100%) !important;
  box-shadow:0 0 0 4px rgba(47,109,231,.18) !important;
}

.page-site-view .site-section-contract{
  border-color:#95d9aa !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(22,163,74,.20) 0%, transparent 38%),
    linear-gradient(180deg, #ffffff 0%, #ecfff2 100%) !important;
}
.page-site-view .site-section-contract::before{
  background:linear-gradient(180deg,#35c876 0%,#16a34a 100%);
}
.page-site-view .site-section-contract .card-title{
  border-color:#95d9aa !important;
  background:linear-gradient(180deg,#ffffff 0%,#e6fff0 100%) !important;
  color:#0a713d !important;
}
.page-site-view .site-section-contract .card-title::before{
  background:linear-gradient(180deg,#35c876 0%,#16a34a 100%) !important;
  box-shadow:0 0 0 4px rgba(22,163,74,.17) !important;
}

.page-site-view .site-section-contacts{
  border-color:#efc56f !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(226,138,23,.20) 0%, transparent 38%),
    linear-gradient(180deg, #ffffff 0%, #fff6df 100%) !important;
}
.page-site-view .site-section-contacts::before{
  background:linear-gradient(180deg,#ffbd5b 0%,#e28a17 100%);
}
.page-site-view .site-section-contacts .card-title{
  border-color:#efc56f !important;
  background:linear-gradient(180deg,#ffffff 0%,#fff0cc 100%) !important;
  color:#7a4a00 !important;
}
.page-site-view .site-section-contacts .card-title::before{
  background:linear-gradient(180deg,#ffbd5b 0%,#e28a17 100%) !important;
  box-shadow:0 0 0 4px rgba(226,138,23,.17) !important;
}

.page-site-view .site-section-buildings{
  border-color:#c7b4f7 !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(111,76,217,.18) 0%, transparent 38%),
    linear-gradient(180deg, #ffffff 0%, #f3efff 100%) !important;
}
.page-site-view .site-section-buildings::before{
  background:linear-gradient(180deg,#9172ff 0%,#6f4cd9 100%);
}
.page-site-view .site-section-buildings .card-title{
  border-color:#c7b4f7 !important;
  background:linear-gradient(180deg,#ffffff 0%,#eee7ff 100%) !important;
  color:#4b2fb5 !important;
}
.page-site-view .site-section-buildings .card-title::before{
  background:linear-gradient(180deg,#9172ff 0%,#6f4cd9 100%) !important;
  box-shadow:0 0 0 4px rgba(111,76,217,.16) !important;
}

/* 기본정보 상단 값 카드별 색감 */
.page-site-view .site-section-basic .kv-item:nth-of-type(1){
  border-color:#b8cff8 !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(239,246,255,.96) 100%) !important;
}

.page-site-view .site-section-basic .kv-item:nth-of-type(2){
  border-color:#d2c3f8 !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(246,242,255,.96) 100%) !important;
}

.page-site-view .site-section-basic .kv-item:nth-of-type(3){
  border-color:#f2d18b !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(255,248,232,.96) 100%) !important;
}

.page-site-view .site-section-basic .kv-item:nth-of-type(4){
  border-color:#aee1bd !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(239,255,244,.96) 100%) !important;
}

/* label 자체도 작은 색상 pill 느낌으로 */
.page-site-view .site-view-section .kv-k{
  display:inline-flex !important;
  align-items:center;
  min-height:24px;
  width:max-content;
  padding:4px 8px;
  border-radius:999px;
  background:rgba(255,255,255,.74);
  border:1px solid rgba(190,210,244,.86);
  color:#2d4667 !important;
}

.page-site-view .site-section-basic .kv-k{
  border-color:#b8cff8;
  color:#17498c !important;
}
.page-site-view .site-section-contract .kv-k{
  border-color:#aee1bd;
  color:#0a713d !important;
}
.page-site-view .site-section-contacts .kv-k{
  border-color:#f2d18b;
  color:#7a4a00 !important;
}
.page-site-view .site-section-buildings .kv-k{
  border-color:#d2c3f8;
  color:#4b2fb5 !important;
}

/* 종합/작동/공공기관/경보 배지 더 강하게 */
.page-site-view .badge.bt-comp,
.page-site-list .badge.inspect-comp,
body[class*="page-site"] .badge.bt-comp,
body[class*="page-site"] .badge.inspect-comp{
  border-color:#ef8e81 !important;
  background:linear-gradient(180deg,#fff8f6 0%,#ffe7e1 100%) !important;
  color:#c33122 !important;
  box-shadow:0 8px 16px rgba(230,75,60,.12) !important;
}

.page-site-view .badge.bt-op,
.page-site-list .badge.inspect-oper,
body[class*="page-site"] .badge.bt-op,
body[class*="page-site"] .badge.inspect-oper{
  border-color:#9fc3ff !important;
  background:linear-gradient(180deg,#ffffff 0%,#e5f0ff 100%) !important;
  color:#195ac5 !important;
  box-shadow:0 8px 16px rgba(47,109,231,.12) !important;
}

.page-site-view .badge.bt-alm,
.page-site-view .badge.kind-public,
.page-site-list .badge.kind-public,
body[class*="page-site"] .badge.bt-alm,
body[class*="page-site"] .badge.kind-public,
body[class*="page-site"] .badge.inspect-alarm{
  border-color:#efc56f !important;
  background:linear-gradient(180deg,#fffdf7 0%,#ffedc4 100%) !important;
  color:#8a5200 !important;
  box-shadow:0 8px 16px rgba(226,138,23,.12) !important;
}

/* 화면 상단 제목 pill도 상태/이름 구분감 강화 */
.page-site-view h2{
  background:
    linear-gradient(180deg,#ffffff 0%,#eaf2ff 100%) !important;
  border-color:#9fc3ff !important;
  box-shadow:0 14px 28px rgba(47,109,231,.14) !important;
}

.page-site-view h2 b{
  font-size:21px;
  color:#052a63;
  letter-spacing:-.7px;
}

/* 건물 내부 소카드 색감 */
.page-site-view .site-section-buildings .subcard{
  border-color:#c7b4f7 !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(248,245,255,.96) 100%) !important;
}

.page-site-view .site-section-buildings .subcard .card-header{
  border-color:#d2c3f8 !important;
  background:linear-gradient(180deg,#ffffff 0%,#f1ebff 100%) !important;
}

@media(max-width:760px){
  .page-site-view .site-view-section{
    padding:15px !important;
    border-radius:24px !important;
  }
  .page-site-view .site-view-section::before{
    width:4px;
    border-radius:24px 0 0 24px;
  }
}


/* =========================================================
   SITE EXPLICIT SECTION COLORS PATCH v5
   - view/edit/create all explicit classes
   - manager/contact/building color fixes
   ========================================================= */
body[class*="page-site"] .site-view-section{
  position: relative !important;
  padding: 20px !important;
  border-radius: 30px !important;
  overflow: hidden !important;
  box-shadow: 0 18px 38px rgba(28,54,89,.11) !important;
}

body[class*="page-site"] .site-view-section::before{
  content:'';
  position:absolute;
  inset:0 auto 0 0;
  width:6px;
  border-radius:30px 0 0 30px;
  z-index:0;
}

body[class*="page-site"] .site-view-section > *{
  position:relative;
  z-index:1;
}

body[class*="page-site"] .site-section-basic{
  border-color:#9fc3ff !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(47,109,231,.20) 0%, transparent 40%),
    linear-gradient(180deg, #ffffff 0%, #edf5ff 100%) !important;
}
body[class*="page-site"] .site-section-basic::before{
  background:linear-gradient(180deg,#4e89ff 0%,#2f6de7 100%) !important;
}
body[class*="page-site"] .site-section-basic .card-title{
  border-color:#9fc3ff !important;
  background:linear-gradient(180deg,#ffffff 0%,#e5f0ff 100%) !important;
  color:#0749b5 !important;
}
body[class*="page-site"] .site-section-basic .card-title::before{
  background:linear-gradient(180deg,#4e89ff 0%,#2f6de7 100%) !important;
  box-shadow:0 0 0 4px rgba(47,109,231,.18) !important;
}

body[class*="page-site"] .site-section-contract{
  border-color:#95d9aa !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(22,163,74,.20) 0%, transparent 40%),
    linear-gradient(180deg, #ffffff 0%, #ecfff2 100%) !important;
}
body[class*="page-site"] .site-section-contract::before{
  background:linear-gradient(180deg,#35c876 0%,#16a34a 100%) !important;
}
body[class*="page-site"] .site-section-contract .card-title{
  border-color:#95d9aa !important;
  background:linear-gradient(180deg,#ffffff 0%,#e6fff0 100%) !important;
  color:#0a713d !important;
}
body[class*="page-site"] .site-section-contract .card-title::before{
  background:linear-gradient(180deg,#35c876 0%,#16a34a 100%) !important;
  box-shadow:0 0 0 4px rgba(22,163,74,.17) !important;
}

/* 담당직원 - 청록 */
body[class*="page-site"] .site-section-manager{
  border-color:#8fd7d1 !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(20,184,166,.18) 0%, transparent 40%),
    linear-gradient(180deg, #ffffff 0%, #ecfffd 100%) !important;
}
body[class*="page-site"] .site-section-manager::before{
  background:linear-gradient(180deg,#2dd4bf 0%,#0f9f8f 100%) !important;
}
body[class*="page-site"] .site-section-manager .card-title{
  border-color:#8fd7d1 !important;
  background:linear-gradient(180deg,#ffffff 0%,#e7fffb 100%) !important;
  color:#08766a !important;
}
body[class*="page-site"] .site-section-manager .card-title::before{
  background:linear-gradient(180deg,#2dd4bf 0%,#0f9f8f 100%) !important;
  box-shadow:0 0 0 4px rgba(20,184,166,.16) !important;
}

/* 대표자/소방안전관리자/관계인 - 주황 */
body[class*="page-site"] .site-section-contacts{
  border-color:#efc56f !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(226,138,23,.22) 0%, transparent 40%),
    linear-gradient(180deg, #ffffff 0%, #fff6df 100%) !important;
}
body[class*="page-site"] .site-section-contacts::before{
  background:linear-gradient(180deg,#ffbd5b 0%,#e28a17 100%) !important;
}
body[class*="page-site"] .site-section-contacts .card-title{
  border-color:#efc56f !important;
  background:linear-gradient(180deg,#ffffff 0%,#fff0cc 100%) !important;
  color:#7a4a00 !important;
}
body[class*="page-site"] .site-section-contacts .card-title::before{
  background:linear-gradient(180deg,#ffbd5b 0%,#e28a17 100%) !important;
  box-shadow:0 0 0 4px rgba(226,138,23,.17) !important;
}

/* 건물 - 보라 */
body[class*="page-site"] .site-section-buildings{
  border-color:#c7b4f7 !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(111,76,217,.20) 0%, transparent 40%),
    linear-gradient(180deg, #ffffff 0%, #f3efff 100%) !important;
}
body[class*="page-site"] .site-section-buildings::before{
  background:linear-gradient(180deg,#9172ff 0%,#6f4cd9 100%) !important;
}
body[class*="page-site"] .site-section-buildings .card-title{
  border-color:#c7b4f7 !important;
  background:linear-gradient(180deg,#ffffff 0%,#eee7ff 100%) !important;
  color:#4b2fb5 !important;
}
body[class*="page-site"] .site-section-buildings .card-title::before{
  background:linear-gradient(180deg,#9172ff 0%,#6f4cd9 100%) !important;
  box-shadow:0 0 0 4px rgba(111,76,217,.16) !important;
}

/* section 내부 라벨 pill도 섹션색으로 */
body[class*="page-site"] .site-view-section .kv-k{
  display:inline-flex !important;
  align-items:center !important;
  min-height:24px !important;
  width:max-content !important;
  padding:4px 8px !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.76) !important;
  border:1px solid rgba(190,210,244,.86) !important;
  font-weight:950 !important;
}

body[class*="page-site"] .site-section-basic .kv-k{
  border-color:#9fc3ff !important;
  color:#17498c !important;
}
body[class*="page-site"] .site-section-contract .kv-k{
  border-color:#95d9aa !important;
  color:#0a713d !important;
}
body[class*="page-site"] .site-section-manager .kv-k{
  border-color:#8fd7d1 !important;
  color:#08766a !important;
}
body[class*="page-site"] .site-section-contacts .kv-k{
  border-color:#efc56f !important;
  color:#7a4a00 !important;
}
body[class*="page-site"] .site-section-buildings .kv-k{
  border-color:#c7b4f7 !important;
  color:#4b2fb5 !important;
}

/* 상단 기본정보 내부 카드도 보기 좋게 개별 색감 */
body[class*="page-site"] .site-section-basic .kv-item:nth-of-type(1){
  border-color:#9fc3ff !important;
  background:linear-gradient(180deg,rgba(255,255,255,.94) 0%,rgba(237,245,255,.98) 100%) !important;
}
body[class*="page-site"] .site-section-basic .kv-item:nth-of-type(2){
  border-color:#c7b4f7 !important;
  background:linear-gradient(180deg,rgba(255,255,255,.94) 0%,rgba(246,242,255,.98) 100%) !important;
}
body[class*="page-site"] .site-section-basic .kv-item:nth-of-type(3){
  border-color:#efc56f !important;
  background:linear-gradient(180deg,rgba(255,255,255,.94) 0%,rgba(255,248,232,.98) 100%) !important;
}
body[class*="page-site"] .site-section-basic .kv-item:nth-of-type(4){
  border-color:#95d9aa !important;
  background:linear-gradient(180deg,rgba(255,255,255,.94) 0%,rgba(239,255,244,.98) 100%) !important;
}

/* 연락처 섹션 내부 행 주황색 보강 */
body[class*="page-site"] .site-section-contacts .kv-item{
  border-color:#efcf8d !important;
  background:linear-gradient(180deg,rgba(255,255,255,.94) 0%,rgba(255,250,239,.98) 100%) !important;
}

/* 건물 섹션 내부 소카드 보라색 보강 */
body[class*="page-site"] .site-section-buildings .subcard,
body[class*="page-site"] .site-section-buildings .building-block{
  border-color:#c7b4f7 !important;
  background:linear-gradient(180deg,rgba(255,255,255,.94) 0%,rgba(248,245,255,.98) 100%) !important;
}
body[class*="page-site"] .site-section-buildings .subcard .card-header,
body[class*="page-site"] .site-section-buildings .building-block .card-header{
  border-color:#d2c3f8 !important;
  background:linear-gradient(180deg,#ffffff 0%,#f1ebff 100%) !important;
}

/* 종합/작동/공공기관 색 확실히 */
body[class*="page-site"] .badge.bt-comp,
body[class*="page-site"] .badge.inspect-comp{
  border-color:#ef8e81 !important;
  background:linear-gradient(180deg,#fff8f6 0%,#ffe7e1 100%) !important;
  color:#c33122 !important;
  box-shadow:0 8px 16px rgba(230,75,60,.12) !important;
}
body[class*="page-site"] .badge.bt-op,
body[class*="page-site"] .badge.inspect-oper{
  border-color:#9fc3ff !important;
  background:linear-gradient(180deg,#ffffff 0%,#e5f0ff 100%) !important;
  color:#195ac5 !important;
  box-shadow:0 8px 16px rgba(47,109,231,.12) !important;
}
body[class*="page-site"] .badge.bt-alm,
body[class*="page-site"] .badge.kind-public,
body[class*="page-site"] .badge.inspect-alarm{
  border-color:#efc56f !important;
  background:linear-gradient(180deg,#fffdf7 0%,#ffedc4 100%) !important;
  color:#8a5200 !important;
  box-shadow:0 8px 16px rgba(226,138,23,.12) !important;
}

@media(max-width:760px){
  body[class*="page-site"] .site-view-section{
    padding:15px !important;
    border-radius:24px !important;
  }
  body[class*="page-site"] .site-view-section::before{
    width:4px;
    border-radius:24px 0 0 24px;
  }
}


/* =========================================================
   SITE LIST CARD DESIGN v6
   - 마감관리 카드형 목록 스타일 적용
   ========================================================= */
.page-site-list .site-card-list-wrap{
  margin-top:18px !important;
  padding:18px !important;
  border:1px solid #cfe0f6 !important;
  border-radius:28px !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(78,137,255,.10) 0%, transparent 36%),
    linear-gradient(180deg, #ffffff 0%, #f8fbff 100%) !important;
  box-shadow:0 18px 38px rgba(28,54,89,.11) !important;
  overflow:hidden !important;
}

.page-site-list .site-card-list-wrap::before{
  content:'';
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  border-radius:28px 0 0 28px;
  background:linear-gradient(180deg,#4e89ff 0%,#2f6de7 100%);
}

.page-site-list .site-card-list-wrap > *{
  position:relative;
  z-index:1;
}

.page-site-list .site-card-list{
  display:grid;
  gap:12px;
}

.page-site-list .site-list-card{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:14px;
  align-items:center;
  min-height:118px;
  padding:18px 18px 18px 20px;
  border:1px solid #cfe0f6;
  border-radius:24px;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
  box-shadow:0 14px 30px rgba(28,54,89,.08);
  cursor:pointer;
  overflow:hidden;
  transition:transform .16s ease, box-shadow .18s ease, border-color .18s ease;
}

.page-site-list .site-list-card::before{
  content:'';
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:#2f6de7;
}

.page-site-list .site-list-card:hover,
.page-site-list .site-list-card:focus-visible{
  transform:translateY(-2px);
  border-color:#9fc3ff;
  box-shadow:0 20px 36px rgba(28,54,89,.13);
  outline:none;
}

.page-site-list .site-list-card.inspect-comp,
.page-site-list .site-list-card.bt-comp{
  border-color:#f0aaa0;
  background:linear-gradient(180deg,#fffdfc 0%,#fff3f0 100%);
}

.page-site-list .site-list-card.inspect-comp::before,
.page-site-list .site-list-card.bt-comp::before{
  background:linear-gradient(180deg,#ff7a66 0%,#e64b3c 100%);
}

.page-site-list .site-list-card.inspect-oper,
.page-site-list .site-list-card.bt-op{
  border-color:#b8cff8;
  background:linear-gradient(180deg,#ffffff 0%,#eef5ff 100%);
}

.page-site-list .site-list-card.inspect-oper::before,
.page-site-list .site-list-card.bt-op::before{
  background:linear-gradient(180deg,#4e89ff 0%,#2f6de7 100%);
}

.page-site-list .site-list-card.kind-public,
.page-site-list .site-list-card.inspect-alarm,
.page-site-list .site-list-card.bt-alm{
  border-color:#f2d18b;
  background:linear-gradient(180deg,#fffdf7 0%,#fff3d7 100%);
}

.page-site-list .site-list-card.kind-public::before,
.page-site-list .site-list-card.inspect-alarm::before,
.page-site-list .site-list-card.bt-alm::before{
  background:linear-gradient(180deg,#ffbd5b 0%,#e28a17 100%);
}

.page-site-list .site-list-main{
  min-width:0;
}

.page-site-list .site-list-companyline{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin-bottom:10px;
}

.page-site-list .site-list-companyline strong{
  color:#062758;
  font-size:18px;
  line-height:1.2;
  font-weight:950;
  letter-spacing:-.5px;
}

.page-site-list .site-list-no{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:34px;
  min-height:28px;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid #bcd1f5;
  background:linear-gradient(180deg,#ffffff 0%,#eaf2ff 100%);
  color:#0749b5;
  font-size:12px;
  line-height:1;
  font-weight:950;
}

.page-site-list .site-list-titleline{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin-bottom:9px;
}

.page-site-list .site-list-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  color:#50627a;
  font-size:13px;
  font-weight:850;
}

.page-site-list .site-list-meta span{
  word-break:keep-all;
}

.page-site-list .site-list-actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  min-width:94px;
}

.page-site-list .site-list-actions .btn{
  white-space:nowrap;
}

@media(max-width:760px){
  .page-site-list .site-card-list-wrap{
    padding:12px !important;
    border-radius:22px !important;
  }

  .page-site-list .site-card-list-wrap::before{
    border-radius:22px 0 0 22px;
  }

  .page-site-list .site-list-card{
    grid-template-columns:1fr;
    min-height:auto;
    padding:16px 14px 16px 18px;
  }

  .page-site-list .site-list-actions{
    justify-content:flex-start;
  }
}

/* =========================================================
   WORK DEADLINE ENGINE UI v1
   ========================================================= */
.page-work-deadline .container{
  max-width: 1120px;
}

.page-work-deadline h2{
  margin:0;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:8px 14px;
  border-radius:999px;
  border:1px solid #bcd1f5;
  background:linear-gradient(180deg,#ffffff 0%,#eef5ff 100%);
  color:#062758;
  font-size:20px;
  font-weight:950;
  letter-spacing:-.7px;
  box-shadow:0 10px 24px rgba(47,109,231,.10);
}

.page-work-deadline .card{
  border:1px solid #cfe0f6 !important;
  border-radius:26px !important;
  background:linear-gradient(180deg,rgba(255,255,255,.96) 0%,rgba(248,251,255,.98) 100%) !important;
  box-shadow:0 16px 36px rgba(28,54,89,.10) !important;
  padding:18px !important;
}

.page-work-deadline .card-title{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid #bed2f4;
  background:linear-gradient(180deg,#ffffff 0%,#edf5ff 100%);
  color:#123e77;
  font-size:14px;
  font-weight:950;
}

.page-work-deadline .deadline-filter-row{
  display:grid;
  grid-template-columns:150px 150px 150px minmax(220px,1fr) 110px;
  gap:10px;
  align-items:end;
}

.page-work-deadline .field{
  display:grid;
  gap:7px;
}

.page-work-deadline .field label{
  font-size:12px;
  font-weight:950;
  color:#163b70;
}

.page-work-deadline .input{
  min-height:44px;
  border-radius:14px !important;
  border:1px solid #c7d8f0 !important;
  background:#fff !important;
  font-weight:800;
}

.page-work-deadline .input:focus{
  border-color:#4e89ff !important;
  box-shadow:0 0 0 4px rgba(78,137,255,.16) !important;
}

.page-work-deadline .deadline-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:14px 0;
}

.page-work-deadline .deadline-sum{
  display:grid;
  gap:8px;
  min-height:96px;
  padding:16px;
  border-radius:22px;
  text-decoration:none;
  color:inherit;
  border:1px solid #d8e4f4;
  background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);
  box-shadow:0 14px 28px rgba(28,54,89,.08);
}

.page-work-deadline .deadline-sum span{
  font-size:13px;
  font-weight:950;
  color:#52657d;
}

.page-work-deadline .deadline-sum b{
  font-size:24px;
  font-weight:950;
  color:#001f49;
}

.page-work-deadline .deadline-sum.overdue{
  border-color:#f0aaa0;
  background:linear-gradient(180deg,#fffdfc 0%,#fff0ed 100%);
}
.page-work-deadline .deadline-sum.overdue b{ color:#c44231; }

.page-work-deadline .deadline-sum.soon{
  border-color:#f2d18b;
  background:linear-gradient(180deg,#fffdf7 0%,#fff3d7 100%);
}
.page-work-deadline .deadline-sum.soon b{ color:#9b4b00; }

.page-work-deadline .deadline-sum.done{
  border-color:#aee1bd;
  background:linear-gradient(180deg,#fbfffc 0%,#effff4 100%);
}
.page-work-deadline .deadline-sum.done b{ color:#167238; }

.page-work-deadline .deadline-list{
  display:grid;
  gap:12px;
}

.page-work-deadline .deadline-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  position:relative;
  overflow:hidden;
}

.page-work-deadline .deadline-card::before{
  content:'';
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:#2f6de7;
}

.page-work-deadline .deadline-card.is-overdue{
  border-color:#f0aaa0 !important;
  background:linear-gradient(180deg,#fffdfc 0%,#fff0ed 100%) !important;
}
.page-work-deadline .deadline-card.is-overdue::before{ background:#e64b3c; }

.page-work-deadline .deadline-card.is-due_soon{
  border-color:#f2d18b !important;
  background:linear-gradient(180deg,#fffdf7 0%,#fff4df 100%) !important;
}
.page-work-deadline .deadline-card.is-due_soon::before{ background:#e28a17; }

.page-work-deadline .deadline-card.is-done{
  border-color:#aee1bd !important;
  background:linear-gradient(180deg,#fbfffc 0%,#effff4 100%) !important;
}
.page-work-deadline .deadline-card.is-done::before{ background:#16a34a; }

.page-work-deadline .deadline-titleline{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}

.page-work-deadline .deadline-titleline strong{
  color:#062758;
  font-size:18px;
  font-weight:950;
  letter-spacing:-.5px;
}

.page-work-deadline .deadline-meta,
.page-work-deadline .deadline-site{
  margin-top:8px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  color:#52657d;
  font-size:13px;
  font-weight:850;
}

.page-work-deadline .deadline-site a{
  color:#0b4fba;
  font-weight:950;
  text-decoration:none;
}

.page-work-deadline .deadline-site em{
  font-style:normal;
  color:#6a7484;
}


.page-work-deadline .work-event-form{
  position:relative;
  overflow:hidden;
}

.page-work-deadline .work-event-form::before{
  content:'';
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:linear-gradient(180deg,#4e89ff 0%,#2f6de7 100%);
}

.page-work-deadline .work-event-form > *{
  position:relative;
  z-index:1;
}

.page-work-deadline .kv{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.page-work-deadline .kv-item{
  padding:14px 16px;
  border:1px solid #d8e4f4;
  border-radius:20px;
  background:rgba(255,255,255,.82);
}

.page-work-deadline .kv-item.full{
  grid-column:1 / -1;
}

.page-work-deadline .kv-k{
  margin-bottom:8px;
  font-size:12px;
  font-weight:950;
  color:#486079;
}

.page-work-deadline .work-js-error{
  margin-bottom:14px;
}

@media(max-width:900px){
  .page-work-deadline .deadline-filter-row{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .page-work-deadline .deadline-filter-row .grow{
    grid-column:1 / -1;
  }
  .page-work-deadline .deadline-summary{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .page-work-deadline .deadline-card{
    grid-template-columns:1fr;
  }
}

@media(max-width:620px){
  .page-work-deadline .deadline-filter-row,
  .page-work-deadline .deadline-summary,
  .page-work-deadline .kv{
    grid-template-columns:1fr;
  }
}


/* work deadline site search input v2 */
.page-work-deadline [data-site-search-input]{
  padding-left: 14px !important;
  background:
    linear-gradient(180deg, #ffffff 0%, #f8fbff 100%) !important;
}

.page-work-deadline [data-site-search-input].is-invalid{
  border-color:#ef6b5d !important;
  box-shadow:0 0 0 4px rgba(230,75,60,.13) !important;
  background:#fff7f5 !important;
}

.page-work-deadline .work-event-form .help{
  margin-top: 7px;
  color:#607089;
  font-size: 12px;
  font-weight: 800;
}


/* work deadline dashboard month + type summary v3 */
.page-work-deadline .work-month-pill{
  margin-left:8px;
  border-color:#2f6de7 !important;
  background:linear-gradient(180deg,#eef5ff 0%,#dceaff 100%) !important;
  color:#0749b5 !important;
  font-size:17px !important;
  font-weight:950 !important;
}

.page-work-deadline .deadline-month-nav{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}

.page-work-deadline .deadline-filter-row{
  grid-template-columns:150px 150px 180px minmax(220px,1fr) 110px !important;
}

.page-work-deadline .deadline-type-card .card-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.page-work-deadline .deadline-type-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.page-work-deadline .deadline-type-row{
  display:grid;
  grid-template-columns:minmax(160px,1fr) repeat(5,auto);
  gap:8px;
  align-items:center;
  padding:12px 14px;
  border-radius:18px;
  border:1px solid #d8e4f4;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
  color:inherit;
  text-decoration:none;
  box-shadow:0 10px 20px rgba(28,54,89,.06);
}

.page-work-deadline .deadline-type-row:hover{
  transform:translateY(-1px);
  box-shadow:0 16px 28px rgba(28,54,89,.11);
}

.page-work-deadline .deadline-type-row.is-selected{
  border-color:#2f6de7;
  box-shadow:0 0 0 4px rgba(47,109,231,.16), 0 16px 28px rgba(28,54,89,.12);
}

.page-work-deadline .deadline-type-row strong{
  color:#062758;
  font-size:14px;
  font-weight:950;
}

.page-work-deadline .deadline-type-row span,
.page-work-deadline .deadline-type-row em{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:26px;
  padding:4px 8px;
  border-radius:999px;
  font-size:12px;
  font-style:normal;
  font-weight:950;
  white-space:nowrap;
  border:1px solid #d8e4f4;
  background:#fff;
  color:#52657d;
}

.page-work-deadline .deadline-type-row .open{
  border-color:#bcd1f5;
  background:#eef5ff;
  color:#235ebb;
}

.page-work-deadline .deadline-type-row .overdue{
  border-color:#f0aaa0;
  background:#fff0ed;
  color:#c44231;
}

.page-work-deadline .deadline-type-row .soon{
  border-color:#f2d18b;
  background:#fff3d7;
  color:#9b4b00;
}

.page-work-deadline .deadline-type-row .done{
  border-color:#aee1bd;
  background:#effff4;
  color:#167238;
}

@media(max-width:980px){
  .page-work-deadline .deadline-filter-row{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .page-work-deadline .deadline-filter-row .grow{
    grid-column:1 / -1;
  }

  .page-work-deadline .deadline-type-grid{
    grid-template-columns:1fr;
  }

  .page-work-deadline .deadline-type-row{
    grid-template-columns:1fr;
  }

  .page-work-deadline .deadline-type-row span,
  .page-work-deadline .deadline-type-row em{
    justify-content:flex-start;
  }
}


/* work deadline dashboard help v4 */
.page-work-deadline .deadline-help{
  margin: -4px 0 12px;
  color:#607089;
  font-size:12px;
  font-weight:850;
}


/* work event view/edit/delete v5 */
.page-work-deadline .inline-form{
  display:inline-flex;
  margin:0;
}

.page-work-deadline .work-event-view-card{
  position:relative;
  overflow:hidden;
}

.page-work-deadline .work-event-view-card::before{
  content:'';
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:linear-gradient(180deg,#4e89ff 0%,#2f6de7 100%);
}

.page-work-deadline .work-event-view-card > *{
  position:relative;
  z-index:1;
}

.page-work-deadline .deadline-list.compact{
  display:grid;
  gap:10px;
}

.page-work-deadline .deadline-mini{
  padding:12px 14px;
  border-radius:18px;
  border:1px solid #d8e4f4;
  background:rgba(255,255,255,.86);
}

.page-work-deadline .deadline-mini > div{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}

.page-work-deadline .deadline-mini strong{
  color:#062758;
  font-weight:950;
}

.page-work-deadline .deadline-mini p{
  margin:7px 0 0;
  color:#52657d;
  font-size:13px;
  font-weight:850;
}

.page-work-deadline .deadline-mini.is-overdue{
  border-color:#f0aaa0;
  background:#fff0ed;
}

.page-work-deadline .deadline-mini.is-due_soon{
  border-color:#f2d18b;
  background:#fff3d7;
}

.page-work-deadline .deadline-mini.is-done{
  border-color:#aee1bd;
  background:#effff4;
}

.page-work-deadline .deadline-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-end;
  align-items:center;
}

.page-work-deadline .deadline-actions form{
  margin:0;
}


/* work deadline submit guard v6 */


/* work deadline due preview v7 */
.page-work-deadline .deadline-preview-input[readonly]{
  background: linear-gradient(180deg,#fffdf7 0%,#fff3d7 100%) !important;
  border-color:#f2d18b !important;
  color:#8a5200 !important;
  font-weight:950 !important;
}


/* work deadline title date inline v8 */
.page-work-deadline .deadline-title-with-dates{
  display:inline-flex !important;
  flex-wrap:wrap !important;
  align-items:baseline !important;
  gap:8px !important;
}

.page-work-deadline .deadline-title-with-dates small{
  display:inline !important;
  color:inherit !important;
  font-size:inherit !important;
  line-height:inherit !important;
  font-weight:inherit !important;
  letter-spacing:inherit !important;
}

@media(max-width:720px){
  .page-work-deadline .deadline-title-with-dates{
    display:flex !important;
    gap:4px 8px !important;
  }
}


/* work deadline confirm button disabled v9 */
.page-work-deadline .btn.is-disabled,
.page-work-deadline button:disabled{
  opacity:.62 !important;
  cursor:not-allowed !important;
  filter:grayscale(.15);
}


/* work deadline company name above title v10 */
.page-work-deadline .deadline-companyline{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:7px;
}

.page-work-deadline .deadline-companyline a,
.page-work-deadline .deadline-companyline span{
  display:inline-flex;
  align-items:center;
  width:fit-content;
  min-height:28px;
  padding:5px 11px;
  border-radius:999px;
  border:1px solid #bcd1f5;
  background:linear-gradient(180deg,#ffffff 0%,#eaf2ff 100%);
  color:#0749b5;
  font-size:14px;
  line-height:1;
  font-weight:950;
  letter-spacing:-.3px;
  text-decoration:none;
  box-shadow:0 8px 16px rgba(47,109,231,.10);
}

.page-work-deadline .deadline-companyline a:hover{
  border-color:#2f6de7;
  box-shadow:0 10px 18px rgba(47,109,231,.16);
}

.page-work-deadline .deadline-companyline span{
  color:#607089;
  background:#f7f9fd;
}


/* =========================================================
   WORK CASE ENGINE UI v1
   ========================================================= */
.page-work-case-start .work-case-form,
.page-work-case-view .work-case-head,
.page-work-case-view .work-case-actions-card,
.page-work-case-view .work-case-timeline-card{
  position:relative;
  overflow:hidden;
}

.page-work-case-start .work-case-form::before,
.page-work-case-view .work-case-head::before,
.page-work-case-view .work-case-actions-card::before,
.page-work-case-view .work-case-timeline-card::before{
  content:'';
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:linear-gradient(180deg,#4e89ff 0%,#2f6de7 100%);
}

.page-work-case-start .work-case-form > *,
.page-work-case-view .work-case-head > *,
.page-work-case-view .work-case-actions-card > *,
.page-work-case-view .work-case-timeline-card > *{
  position:relative;
  z-index:1;
}

.page-work-deadline .work-case-flow-preview{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin-top:16px;
  padding:14px;
  border:1px solid #d8e4f4;
  border-radius:18px;
  background:rgba(255,255,255,.84);
}

.page-work-deadline .work-case-flow-preview strong{
  color:#062758;
  font-weight:950;
  margin-right:4px;
}

.page-work-deadline .work-case-flow-preview span{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:5px 10px;
  border-radius:999px;
  border:1px solid #bcd1f5;
  background:linear-gradient(180deg,#fff 0%,#eaf2ff 100%);
  color:#0749b5;
  font-size:12px;
  font-weight:950;
}

.page-work-case-view .work-case-companyline{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:10px;
}

.page-work-case-view .work-case-companyline a,
.page-work-case-view .work-case-companyline span{
  display:inline-flex;
  align-items:center;
  width:fit-content;
  min-height:30px;
  padding:6px 12px;
  border-radius:999px;
  border:1px solid #bcd1f5;
  background:linear-gradient(180deg,#ffffff 0%,#eaf2ff 100%);
  color:#0749b5;
  font-size:15px;
  line-height:1;
  font-weight:950;
  text-decoration:none;
  box-shadow:0 8px 16px rgba(47,109,231,.10);
}

.page-work-case-view .work-case-titleline{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}

.page-work-case-view .work-case-titleline strong{
  color:#062758;
  font-size:20px;
  font-weight:950;
  letter-spacing:-.6px;
}

.page-work-case-view .work-case-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
  color:#52657d;
  font-size:13px;
  font-weight:850;
}

.page-work-case-view .work-case-memo{
  margin-top:12px;
  padding:13px 14px;
  border-radius:16px;
  border:1px solid #d8e4f4;
  background:rgba(255,255,255,.84);
  color:#344761;
  font-weight:800;
}

.page-work-case-view .work-case-actions{
  display:grid;
  gap:10px;
}

.page-work-case-view .work-case-actions form{
  display:grid;
  grid-template-columns:150px minmax(180px,1fr) auto;
  gap:8px;
  align-items:center;
  margin:0;
  padding:12px;
  border:1px solid #d8e4f4;
  border-radius:18px;
  background:rgba(255,255,255,.84);
}

.page-work-case-view .work-case-timeline{
  display:grid;
  gap:12px;
}

.page-work-case-view .work-case-timeline-item{
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  gap:12px;
  padding:14px;
  border:1px solid #d8e4f4;
  border-radius:20px;
  background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);
  box-shadow:0 10px 20px rgba(28,54,89,.06);
}

.page-work-case-view .timeline-date{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  height:fit-content;
  padding:8px 10px;
  border-radius:999px;
  border:1px solid #bcd1f5;
  background:linear-gradient(180deg,#fff 0%,#eaf2ff 100%);
  color:#0749b5;
  font-weight:950;
}

.page-work-case-view .timeline-title{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}

.page-work-case-view .timeline-title strong{
  color:#062758;
  font-size:16px;
  font-weight:950;
}

.page-work-case-view .timeline-content{
  margin-top:8px;
  color:#42546d;
  font-size:13px;
  font-weight:800;
}

.page-work-case-view .timeline-deadline{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin-top:10px;
  padding:10px 12px;
  border:1px solid #d8e4f4;
  border-radius:16px;
  background:#fff;
}

.page-work-case-view .timeline-deadline b{
  color:#062758;
  font-weight:950;
}

.page-work-case-view .timeline-deadline em{
  font-style:normal;
  color:#52657d;
  font-size:12px;
  font-weight:850;
}

@media(max-width:760px){
  .page-work-case-view .work-case-actions form{
    grid-template-columns:1fr;
  }
  .page-work-case-view .work-case-timeline-item{
    grid-template-columns:1fr;
  }
  .page-work-case-view .timeline-date{
    justify-content:flex-start;
    width:fit-content;
  }
}


/* workflow step summary cards v14 */
.page-work-deadline .deadline-step-card{
  overflow:hidden;
}

.page-work-deadline .deadline-step-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
}

.page-work-deadline .deadline-step-row{
  display:grid;
  gap:8px;
  min-height:118px;
  padding:14px;
  border:1px solid #cfe0f6;
  border-radius:20px;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
  color:#062758;
  text-decoration:none;
  box-shadow:0 10px 22px rgba(28,54,89,.06);
  transition:transform .16s ease, box-shadow .18s ease, border-color .18s ease;
}

.page-work-deadline .deadline-step-row:hover,
.page-work-deadline .deadline-step-row.is-selected{
  transform:translateY(-2px);
  border-color:#2f6de7;
  box-shadow:0 16px 30px rgba(47,109,231,.14);
}

.page-work-deadline .deadline-step-row strong{
  font-size:15px;
  font-weight:950;
  letter-spacing:-.4px;
}

.page-work-deadline .deadline-step-row b{
  font-size:27px;
  line-height:1;
  font-weight:950;
  color:#061d46;
}

.page-work-deadline .deadline-step-row span{
  display:inline-flex;
  width:fit-content;
  align-items:center;
  min-height:22px;
  padding:3px 8px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  border:1px solid #d8e4f4;
  background:#fff;
}

.page-work-deadline .deadline-step-row .open{color:#0752ca; border-color:#bcd1f5; background:#edf5ff;}
.page-work-deadline .deadline-step-row .overdue{color:#d1372b; border-color:#ffb0a8; background:#fff2f0;}
.page-work-deadline .deadline-step-row .soon{color:#b66a00; border-color:#ffd08a; background:#fff8e8;}
.page-work-deadline .deadline-step-row .done{color:#087736; border-color:#9be1b4; background:#effdf4;}

@media(max-width:980px){
  .page-work-deadline .deadline-step-grid{grid-template-columns:repeat(2, minmax(0, 1fr));}
}

@media(max-width:620px){
  .page-work-deadline .deadline-step-grid{grid-template-columns:1fr;}
}


/* 점검진행 우측패널 연결 v2 */
.page-inspection-schedule-calendar #panelWork iframe,
.page-inspection-schedule-calendar #workCaseFrame{
  width:100%;
  height:100%;
  border:0;
  display:block;
  background:#f3f7ff;
}

.page-inspection-schedule-list .list-top-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.page-inspection-schedule-list .list-top-actions{
  flex:0 0 auto;
}

body.work-case-embed{
  margin:0;
  padding:12px;
  background:#f3f7ff;
}

body.work-case-embed .stack{
  gap:12px;
}

body.work-case-embed .row{
  gap:8px;
}

body.work-case-embed h2{
  font-size:18px;
  margin:0;
}

body.work-case-embed .work-case-actions form{
  grid-template-columns:1fr;
}

body.work-case-embed .work-case-timeline-item{
  grid-template-columns:1fr;
}

body.work-case-embed .timeline-date{
  justify-content:flex-start;
  width:fit-content;
}


/* =========================================================
   WORK CASE LIST UI v2 - 업체별 현황 / 중복정리 / CSS 복구
   ========================================================= */
body.page-work-case-list .deadline-head-card{
  border-radius:24px !important;
  border:1px solid #cfe0f6 !important;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%) !important;
  box-shadow:0 18px 38px rgba(28,54,89,.10) !important;
}

body.page-work-case-list .deadline-filter-row{
  display:grid !important;
  grid-template-columns:145px 140px 170px 170px minmax(180px,1fr) 100px !important;
  gap:10px !important;
  align-items:end !important;
}

body.page-work-case-list .work-case-list-summary{
  display:grid !important;
  grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
  gap:12px !important;
}

body.page-work-case-list .work-case-stat-card{
  display:grid !important;
  gap:8px !important;
  min-height:92px !important;
  padding:18px !important;
  border-radius:22px !important;
  border:1px solid #cfe0f6 !important;
  background:linear-gradient(180deg,#fff 0%,#f8fbff 100%) !important;
  text-decoration:none !important;
  color:#062758 !important;
  box-shadow:0 14px 30px rgba(28,54,89,.08) !important;
}

body.page-work-case-list .work-case-stat-card span{
  font-size:13px !important;
  font-weight:900 !important;
  color:#334b68 !important;
}

body.page-work-case-list .work-case-stat-card b{
  display:block !important;
  font-size:28px !important;
  line-height:1 !important;
  font-weight:950 !important;
}

body.page-work-case-list .work-case-stat-card.danger{
  border-color:#ffb0a8 !important;
  background:linear-gradient(180deg,#fff 0%,#fff2f0 100%) !important;
}
body.page-work-case-list .work-case-stat-card.danger b{color:#c43227 !important;}

body.page-work-case-list .work-case-stat-card.warn{
  border-color:#ffd08a !important;
  background:linear-gradient(180deg,#fff 0%,#fff8e8 100%) !important;
}
body.page-work-case-list .work-case-stat-card.warn b{color:#b66a00 !important;}

body.page-work-case-list .work-case-stat-card.success{
  border-color:#9be1b4 !important;
  background:linear-gradient(180deg,#fff 0%,#effdf4 100%) !important;
}
body.page-work-case-list .work-case-stat-card.success b{color:#087736 !important;}

body.page-work-case-list .work-case-step-card{
  border-radius:24px !important;
  border:1px solid #cfe0f6 !important;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%) !important;
  box-shadow:0 18px 38px rgba(28,54,89,.10) !important;
}

body.page-work-case-list .work-case-step-grid{
  display:grid !important;
  grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
  gap:10px !important;
}

body.page-work-case-list .work-case-step-row{
  display:grid !important;
  gap:7px !important;
  min-height:104px !important;
  padding:14px !important;
  border:1px solid #cfe0f6 !important;
  border-radius:20px !important;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%) !important;
  color:#062758 !important;
  text-decoration:none !important;
  box-shadow:0 10px 22px rgba(28,54,89,.06) !important;
}

body.page-work-case-list .work-case-step-row:hover,
body.page-work-case-list .work-case-step-row.is-selected{
  transform:translateY(-2px) !important;
  border-color:#2f6de7 !important;
  box-shadow:0 16px 30px rgba(47,109,231,.14) !important;
}

body.page-work-case-list .work-case-step-row strong{
  font-size:14px !important;
  font-weight:950 !important;
  letter-spacing:-.35px !important;
}

body.page-work-case-list .work-case-step-row b{
  display:block !important;
  font-size:25px !important;
  line-height:1 !important;
  font-weight:950 !important;
}

body.page-work-case-list .work-case-step-row span,
body.page-work-case-list .work-case-step-row em{
  display:inline-flex !important;
  align-items:center !important;
  font-style:normal !important;
  width:fit-content !important;
  min-height:22px !important;
  padding:3px 8px !important;
  border-radius:999px !important;
  border:1px solid #d8e4f4 !important;
  background:#fff !important;
  font-size:12px !important;
  font-weight:900 !important;
}

body.page-work-case-list .work-case-step-row span{
  color:#0752ca !important;
  border-color:#bcd1f5 !important;
  background:#edf5ff !important;
}

body.page-work-case-list .work-case-step-row em{
  color:#087736 !important;
  border-color:#9be1b4 !important;
  background:#effdf4 !important;
}

body.page-work-case-list .work-case-list{
  display:grid !important;
  gap:12px !important;
}

body.page-work-case-list .work-case-card{
  position:relative !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  gap:14px !important;
  align-items:center !important;
  padding:18px 18px 18px 20px !important;
  border:1px solid #cfe0f6 !important;
  border-radius:24px !important;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%) !important;
  box-shadow:0 14px 30px rgba(28,54,89,.08) !important;
  overflow:hidden !important;
}

body.page-work-case-list .work-case-card::before{
  content:'' !important;
  position:absolute !important;
  inset:0 auto 0 0 !important;
  width:5px !important;
  background:linear-gradient(180deg,#4e89ff 0%,#2f6de7 100%) !important;
}

body.page-work-case-list .work-case-card > *{
  position:relative !important;
  z-index:1 !important;
}

body.page-work-case-list .work-case-companyline{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  margin-bottom:9px !important;
}

body.page-work-case-list .work-case-companyline a,
body.page-work-case-list .work-case-companyline span{
  display:inline-flex !important;
  align-items:center !important;
  width:fit-content !important;
  min-height:28px !important;
  padding:5px 11px !important;
  border-radius:999px !important;
  border:1px solid #bcd1f5 !important;
  background:linear-gradient(180deg,#ffffff 0%,#eaf2ff 100%) !important;
  color:#0749b5 !important;
  font-size:14px !important;
  line-height:1 !important;
  font-weight:950 !important;
  text-decoration:none !important;
}

body.page-work-case-list .work-case-card-titleline{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  align-items:center !important;
}

body.page-work-case-list .work-case-card-titleline strong{
  color:#062758 !important;
  font-size:18px !important;
  line-height:1.22 !important;
  font-weight:950 !important;
  letter-spacing:-.5px !important;
}

body.page-work-case-list .work-case-card-meta,
body.page-work-case-list .work-case-card-next{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  align-items:center !important;
  margin-top:9px !important;
  color:#52657d !important;
  font-size:13px !important;
  font-weight:850 !important;
}

body.page-work-case-list .work-case-card-next em{
  font-style:normal !important;
  color:#334b68 !important;
  font-weight:900 !important;
}

body.page-work-case-list .work-case-card-actions{
  display:flex !important;
  justify-content:flex-end !important;
  align-items:center !important;
}

@media(max-width:980px){
  body.page-work-case-list .deadline-filter-row{
    grid-template-columns:1fr 1fr !important;
  }
  body.page-work-case-list .work-case-list-summary,
  body.page-work-case-list .work-case-step-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }
}

@media(max-width:720px){
  body.page-work-case-list .deadline-filter-row,
  body.page-work-case-list .work-case-list-summary,
  body.page-work-case-list .work-case-step-grid{
    grid-template-columns:1fr !important;
  }

  body.page-work-case-list .work-case-card{
    grid-template-columns:1fr !important;
  }

  body.page-work-case-list .work-case-card-actions{
    justify-content:flex-start !important;
  }
}


/* dashboard step cards/status refinements v15 */
.page-work-deadline .deadline-step-row{
  grid-template-columns:minmax(0, 1fr) auto !important;
  align-items:center !important;
  min-height:118px !important;
}

.page-work-deadline .deadline-step-main{
  display:grid !important;
  gap:8px !important;
  min-width:0 !important;
}

.page-work-deadline .deadline-step-main strong{
  font-size:16px !important;
  font-weight:950 !important;
  letter-spacing:-.4px !important;
}

.page-work-deadline .deadline-step-main b{
  display:block !important;
  font-size:30px !important;
  line-height:1 !important;
  font-weight:950 !important;
  color:#061d46 !important;
}

.page-work-deadline .deadline-step-badges{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-end !important;
  justify-content:center !important;
  gap:6px !important;
  min-width:72px !important;
}

.page-work-deadline .deadline-step-badges span{
  margin-left:auto !important;
}

.page-work-deadline .deadline-companyline{
  gap:8px !important;
}

.page-work-deadline .deadline-companyline a,
.page-work-deadline .deadline-companyline > span:not(.deadline-company-status){
  font-size:17px !important;
  min-height:32px !important;
  padding:7px 13px !important;
}

.page-work-deadline .deadline-company-status{
  font-size:12px !important;
  font-weight:950 !important;
  white-space:nowrap !important;
}

@media(max-width:560px){
  .page-work-deadline .deadline-step-row{
    grid-template-columns:1fr !important;
  }
  .page-work-deadline .deadline-step-badges{
    flex-direction:row !important;
    flex-wrap:wrap !important;
    justify-content:flex-start !important;
    align-items:center !important;
  }
}


/* dashboard step cards layout v16
   - 왼쪽: 단계명 / 건수
   - 오른쪽: 진행·초과 / 임박·완료 2x2 정렬 */
.page-work-deadline .deadline-step-grid .deadline-step-row{
  display:grid !important;
  grid-template-columns:minmax(0, 1fr) auto !important;
  align-items:center !important;
  column-gap:14px !important;
  row-gap:8px !important;
  min-height:108px !important;
  padding:16px 14px !important;
}

.page-work-deadline .deadline-step-grid .deadline-step-main{
  display:grid !important;
  grid-template-columns:1fr !important;
  grid-template-rows:auto auto !important;
  gap:8px !important;
  min-width:0 !important;
}

.page-work-deadline .deadline-step-grid .deadline-step-main strong{
  display:block !important;
  font-size:16px !important;
  line-height:1.15 !important;
  font-weight:950 !important;
  letter-spacing:-.45px !important;
  color:#062758 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

.page-work-deadline .deadline-step-grid .deadline-step-main b{
  display:block !important;
  font-size:31px !important;
  line-height:1 !important;
  font-weight:950 !important;
  color:#061d46 !important;
}

.page-work-deadline .deadline-step-grid .deadline-step-badges{
  display:grid !important;
  grid-template-columns:auto auto !important;
  grid-auto-rows:min-content !important;
  align-items:center !important;
  justify-content:end !important;
  gap:7px 7px !important;
  min-width:112px !important;
  margin-left:auto !important;
}

.page-work-deadline .deadline-step-grid .deadline-step-badges span{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:auto !important;
  min-width:48px !important;
  min-height:24px !important;
  margin:0 !important;
  padding:3px 8px !important;
  border-radius:999px !important;
  font-size:12px !important;
  line-height:1 !important;
  font-weight:950 !important;
  white-space:nowrap !important;
}

@media(max-width:620px){
  .page-work-deadline .deadline-step-grid .deadline-step-row{
    grid-template-columns:1fr !important;
  }

  .page-work-deadline .deadline-step-grid .deadline-step-badges{
    justify-content:start !important;
    margin-left:0 !important;
  }
}


/* =========================================================
   WORK TASK BOARD UI v1 - 업무처리함
   ========================================================= */
.page-work-task-board .task-board-head-card{
  border-radius:24px !important;
  border:1px solid #cfe0f6 !important;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%) !important;
  box-shadow:0 18px 38px rgba(28,54,89,.10) !important;
}

.page-work-task-board .task-board-filter .deadline-filter-row{
  display:grid !important;
  grid-template-columns:160px 190px minmax(220px, 1fr) 100px !important;
  gap:10px !important;
  align-items:end !important;
}

.page-work-task-board .task-board-summary{
  display:grid !important;
  grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
  gap:12px !important;
}

.page-work-task-board .task-stat-card{
  display:grid !important;
  gap:8px !important;
  min-height:92px !important;
  padding:18px !important;
  border-radius:22px !important;
  border:1px solid #cfe0f6 !important;
  background:linear-gradient(180deg,#fff 0%,#f8fbff 100%) !important;
  text-decoration:none !important;
  color:#062758 !important;
  box-shadow:0 14px 30px rgba(28,54,89,.08) !important;
}

.page-work-task-board .task-stat-card span{
  font-size:13px !important;
  font-weight:900 !important;
  color:#334b68 !important;
}

.page-work-task-board .task-stat-card b{
  display:block !important;
  font-size:28px !important;
  line-height:1 !important;
  font-weight:950 !important;
}

.page-work-task-board .task-stat-card.danger{
  border-color:#ffb0a8 !important;
  background:linear-gradient(180deg,#fff 0%,#fff2f0 100%) !important;
}
.page-work-task-board .task-stat-card.danger b{color:#c43227 !important;}

.page-work-task-board .task-stat-card.warn{
  border-color:#ffd08a !important;
  background:linear-gradient(180deg,#fff 0%,#fff8e8 100%) !important;
}
.page-work-task-board .task-stat-card.warn b{color:#b66a00 !important;}

.page-work-task-board .task-stat-card.success{
  border-color:#9be1b4 !important;
  background:linear-gradient(180deg,#fff 0%,#effdf4 100%) !important;
}
.page-work-task-board .task-stat-card.success b{color:#087736 !important;}

.page-work-task-board .task-board-lanes{
  display:grid !important;
  gap:14px !important;
}

.page-work-task-board .task-lane{
  border-radius:24px !important;
  border:1px solid #cfe0f6 !important;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%) !important;
  box-shadow:0 18px 38px rgba(28,54,89,.10) !important;
  overflow:hidden !important;
}

.page-work-task-board .task-lane-head{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  padding-bottom:12px !important;
  margin-bottom:12px !important;
  border-bottom:1px solid #d8e4f4 !important;
}

.page-work-task-board .task-lane-head > div{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  gap:8px !important;
}

.page-work-task-board .task-lane-head strong{
  color:#062758 !important;
  font-size:18px !important;
  font-weight:950 !important;
  letter-spacing:-.45px !important;
}

.page-work-task-board .task-card-list{
  display:grid !important;
  gap:10px !important;
}

.page-work-task-board .task-card{
  position:relative !important;
  display:grid !important;
  grid-template-columns:minmax(0, 1fr) auto !important;
  gap:14px !important;
  align-items:center !important;
  padding:16px 16px 16px 18px !important;
  border:1px solid #cfe0f6 !important;
  border-radius:22px !important;
  background:#fff !important;
  box-shadow:0 10px 22px rgba(28,54,89,.06) !important;
  overflow:hidden !important;
}

.page-work-task-board .task-card::before{
  content:'' !important;
  position:absolute !important;
  inset:0 auto 0 0 !important;
  width:5px !important;
  background:linear-gradient(180deg,#4e89ff 0%,#2f6de7 100%) !important;
}

.page-work-task-board .task-card.is-overdue{
  border-color:#ffb0a8 !important;
  background:linear-gradient(180deg,#fff 0%,#fff8f6 100%) !important;
}
.page-work-task-board .task-card.is-overdue::before{
  background:linear-gradient(180deg,#ff7a66 0%,#d1372b 100%) !important;
}

.page-work-task-board .task-card.is-soon{
  border-color:#ffd08a !important;
  background:linear-gradient(180deg,#fff 0%,#fffaf0 100%) !important;
}
.page-work-task-board .task-card.is-soon::before{
  background:linear-gradient(180deg,#ffbd5b 0%,#b66a00 100%) !important;
}

.page-work-task-board .task-card > *{
  position:relative !important;
  z-index:1 !important;
}

.page-work-task-board .task-companyline,
.page-work-task-board .task-titleline,
.page-work-task-board .task-meta{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  align-items:center !important;
}

.page-work-task-board .task-companyline{
  margin-bottom:8px !important;
}

.page-work-task-board .task-companyline a,
.page-work-task-board .task-companyline > span:not(.badge){
  display:inline-flex !important;
  align-items:center !important;
  width:fit-content !important;
  min-height:30px !important;
  padding:6px 12px !important;
  border-radius:999px !important;
  border:1px solid #bcd1f5 !important;
  background:linear-gradient(180deg,#ffffff 0%,#eaf2ff 100%) !important;
  color:#0749b5 !important;
  font-size:16px !important;
  line-height:1 !important;
  font-weight:950 !important;
  text-decoration:none !important;
}

.page-work-task-board .task-titleline strong{
  color:#062758 !important;
  font-size:18px !important;
  line-height:1.22 !important;
  font-weight:950 !important;
  letter-spacing:-.45px !important;
}

.page-work-task-board .task-meta{
  margin-top:8px !important;
  color:#52657d !important;
  font-size:13px !important;
  font-weight:850 !important;
}

.page-work-task-board .task-current-deadline{
  margin-top:9px !important;
  color:#334b68 !important;
  font-size:13px !important;
  font-weight:900 !important;
}

.page-work-task-board .task-card-actions{
  display:grid !important;
  gap:7px !important;
  min-width:190px !important;
}

.page-work-task-board .task-card-actions form{
  display:grid !important;
  grid-template-columns:118px minmax(0,1fr) !important;
  gap:6px !important;
  margin:0 !important;
}

.page-work-task-board .task-action-date{
  min-height:34px !important;
  padding:6px 8px !important;
  font-size:12px !important;
  font-weight:900 !important;
}

.page-work-task-board .btn.danger{
  background:#d1372b !important;
  color:#fff !important;
  border-color:#d1372b !important;
}

.page-work-task-board .btn.success{
  background:#078a3f !important;
  color:#fff !important;
  border-color:#078a3f !important;
}

@media(max-width:980px){
  .page-work-task-board .task-board-filter .deadline-filter-row{
    grid-template-columns:1fr 1fr !important;
  }
  .page-work-task-board .task-board-summary{
    grid-template-columns:repeat(2, minmax(0,1fr)) !important;
  }
  .page-work-task-board .task-card{
    grid-template-columns:1fr !important;
  }
  .page-work-task-board .task-card-actions{
    min-width:0 !important;
  }
}

@media(max-width:620px){
  .page-work-task-board .task-board-filter .deadline-filter-row,
  .page-work-task-board .task-board-summary{
    grid-template-columns:1fr !important;
  }
  .page-work-task-board .task-card-actions form{
    grid-template-columns:1fr !important;
  }
}


/* =========================================================
   DASHBOARD INTEGRATED ACTIONS + WORK MANAGE POPUP v1
   ========================================================= */
.page-work-deadline-dashboard .deadline-actions-integrated{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:7px !important;
  min-width:210px !important;
}

.page-work-deadline-dashboard .deadline-inline-action{
  display:grid !important;
  grid-template-columns:118px minmax(0, 1fr) !important;
  gap:6px !important;
  margin:0 !important;
}

.page-work-deadline-dashboard .deadline-action-date{
  min-height:34px !important;
  padding:6px 8px !important;
  font-size:12px !important;
  font-weight:900 !important;
}

.page-work-deadline .btn.danger,
.page-work-deadline-dashboard .btn.danger{
  background:#d1372b !important;
  color:#fff !important;
  border-color:#d1372b !important;
}

.page-work-deadline .btn.success,
.page-work-deadline-dashboard .btn.success{
  background:#078a3f !important;
  color:#fff !important;
  border-color:#078a3f !important;
}

.page-work-deadline .btn.danger-outline,
.page-work-deadline-dashboard .btn.danger-outline{
  background:#fff7f6 !important;
  color:#d1372b !important;
  border-color:#ffb0a8 !important;
}

body.work-popup-body{
  margin:0 !important;
  padding:16px !important;
  background:#f3f7ff !important;
}

.work-popup-wrap{
  max-width:900px !important;
  margin:0 auto !important;
}

.page-work-case-manage .work-manage-danger{
  border-color:#ffb0a8 !important;
  background:linear-gradient(180deg,#fff 0%,#fff7f6 100%) !important;
}

.page-work-case-manage .work-manage-list{
  display:grid !important;
  gap:10px !important;
}

.page-work-case-manage .work-manage-row{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  gap:12px !important;
  align-items:center !important;
  padding:13px !important;
  border:1px solid #cfe0f6 !important;
  border-radius:18px !important;
  background:#fff !important;
}

.page-work-case-manage .work-manage-main{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:7px !important;
  align-items:center !important;
  min-width:0 !important;
}

.page-work-case-manage .work-manage-main strong{
  color:#062758 !important;
  font-size:15px !important;
  font-weight:950 !important;
}

.page-work-case-manage .work-manage-main p{
  flex-basis:100% !important;
  margin:4px 0 0 !important;
  color:#52657d !important;
  font-size:13px !important;
  font-weight:800 !important;
}

.page-work-case-manage .work-manage-actions{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:6px !important;
  justify-content:flex-end !important;
}

.page-work-case-manage .work-manage-actions form{
  margin:0 !important;
}

@media(max-width:760px){
  .page-work-deadline-dashboard .deadline-actions-integrated,
  .page-work-deadline-dashboard .deadline-inline-action,
  .page-work-case-manage .work-manage-row{
    grid-template-columns:1fr !important;
  }

  .page-work-case-manage .work-manage-actions{
    justify-content:flex-start !important;
  }
}


/* late completed deadline display v1 */
.page-work-case-view .timeline-deadline .badge.danger{
  background:#fff2f0 !important;
  border-color:#ffb0a8 !important;
  color:#d1372b !important;
}

.page-work-case-view .timeline-deadline em{
  line-height:1.55 !important;
}


/* dashboard inline period/action layout v18 */
.page-work-deadline-dashboard .deadline-card{
  grid-template-columns:minmax(0, 1fr) minmax(320px, 420px) !important;
  align-items:stretch !important;
}

.page-work-deadline-dashboard .deadline-main{
  display:grid !important;
  align-content:start !important;
  gap:10px !important;
}

.page-work-deadline-dashboard .deadline-title-with-dates small{
  display:none !important;
}

.page-work-deadline-dashboard .deadline-period-preview{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  gap:7px !important;
  min-height:34px !important;
  padding:8px 10px !important;
  border:1px solid #d6e5f8 !important;
  border-radius:14px !important;
  background:#fff !important;
  color:#334b68 !important;
}

.page-work-deadline-dashboard .deadline-period-preview .deadline-period-label{
  display:inline-flex !important;
  align-items:center !important;
  min-height:22px !important;
  padding:3px 8px !important;
  border-radius:999px !important;
  border:1px solid #bcd1f5 !important;
  background:#edf5ff !important;
  color:#0752ca !important;
  font-size:12px !important;
  font-weight:950 !important;
}

.page-work-deadline-dashboard .deadline-period-preview b{
  color:#062758 !important;
  font-size:13px !important;
  font-weight:950 !important;
}

.page-work-deadline-dashboard .deadline-period-preview em{
  color:#52657d !important;
  font-size:12px !important;
  font-style:normal !important;
  font-weight:900 !important;
}

.page-work-deadline-dashboard .deadline-actions-integrated{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:8px !important;
  min-width:320px !important;
  align-content:start !important;
}

.page-work-deadline-dashboard .deadline-card-action-form{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:8px !important;
  margin:0 !important;
  padding:10px !important;
  border:1px solid #d6e5f8 !important;
  border-radius:16px !important;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%) !important;
}

.page-work-deadline-dashboard .deadline-action-date-row{
  display:grid !important;
  grid-template-columns:82px 1fr !important;
  align-items:center !important;
  gap:8px !important;
}

.page-work-deadline-dashboard .deadline-action-date-row label,
.page-work-deadline-dashboard .deadline-action-memo-row label{
  color:#334b68 !important;
  font-size:12px !important;
  font-weight:950 !important;
  white-space:nowrap !important;
}

.page-work-deadline-dashboard .deadline-action-date{
  min-height:36px !important;
  padding:7px 9px !important;
  font-size:13px !important;
  font-weight:950 !important;
}

.page-work-deadline-dashboard .deadline-action-button-row{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  gap:7px !important;
}

.page-work-deadline-dashboard .deadline-action-button-row .btn{
  width:100% !important;
  min-height:36px !important;
}

.page-work-deadline-dashboard .deadline-action-memo-row{
  display:grid !important;
  grid-template-columns:82px 1fr !important;
  align-items:center !important;
  gap:8px !important;
  justify-self:stretch !important;
}

.page-work-deadline-dashboard .deadline-action-memo-row .input{
  min-height:36px !important;
  font-size:13px !important;
}

.page-work-deadline-dashboard .deadline-card-sub-actions{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:7px !important;
}

.page-work-deadline-dashboard .deadline-card-sub-actions .btn,
.page-work-deadline-dashboard .deadline-card-sub-actions form,
.page-work-deadline-dashboard .deadline-card-sub-actions button{
  width:100% !important;
}

@media(max-width:980px){
  .page-work-deadline-dashboard .deadline-card{
    grid-template-columns:1fr !important;
  }

  .page-work-deadline-dashboard .deadline-actions-integrated{
    min-width:0 !important;
  }
}

@media(max-width:520px){
  .page-work-deadline-dashboard .deadline-action-button-row,
  .page-work-deadline-dashboard .deadline-card-sub-actions{
    grid-template-columns:1fr !important;
  }

  .page-work-deadline-dashboard .deadline-action-date-row,
  .page-work-deadline-dashboard .deadline-action-memo-row{
    grid-template-columns:1fr !important;
  }
}


/* dashboard workflow progress table v21 */
.page-work-deadline-dashboard .workflow-dashboard-list{
  display:grid !important;
  gap:14px !important;
}

.page-work-deadline-dashboard .workflow-case-card{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:14px !important;
  padding:18px !important;
}

.page-work-deadline-dashboard .workflow-case-head{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  gap:12px !important;
  align-items:start !important;
  padding-bottom:12px !important;
  border-bottom:1px solid #d8e4f4 !important;
}

.page-work-deadline-dashboard .workflow-case-title{
  display:grid !important;
  gap:8px !important;
  min-width:0 !important;
}

.page-work-deadline-dashboard .workflow-case-title > strong{
  color:#062758 !important;
  font-size:19px !important;
  line-height:1.25 !important;
  font-weight:950 !important;
  letter-spacing:-.55px !important;
}

.page-work-deadline-dashboard .workflow-case-tools{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:7px !important;
  justify-content:flex-end !important;
}

.page-work-deadline-dashboard .workflow-progress-grid{
  display:grid !important;
  grid-template-columns:1fr 1.25fr !important;
  gap:14px !important;
}

.page-work-deadline-dashboard .workflow-progress-col{
  display:grid !important;
  gap:8px !important;
  align-content:start !important;
  min-width:0 !important;
}

.page-work-deadline-dashboard .workflow-col-title{
  display:inline-flex !important;
  align-items:center !important;
  width:fit-content !important;
  min-height:28px !important;
  padding:5px 11px !important;
  border-radius:999px !important;
  border:1px solid #bcd1f5 !important;
  background:linear-gradient(180deg,#ffffff 0%,#eaf2ff 100%) !important;
  color:#0749b5 !important;
  font-size:13px !important;
  font-weight:950 !important;
}

.page-work-deadline-dashboard .workflow-step-row{
  display:grid !important;
  grid-template-columns:minmax(170px, .85fr) minmax(110px, auto) minmax(280px, 1.25fr) !important;
  gap:8px !important;
  align-items:center !important;
  min-height:56px !important;
  padding:9px !important;
  border:1px solid #cfe0f6 !important;
  border-radius:16px !important;
  background:#fff !important;
  box-shadow:0 6px 14px rgba(28,54,89,.04) !important;
}

.page-work-deadline-dashboard .workflow-step-row.is-done{
  background:linear-gradient(180deg,#fff 0%,#f4fff8 100%) !important;
  border-color:#b9e9c9 !important;
}

.page-work-deadline-dashboard .workflow-step-info{
  display:grid !important;
  gap:4px !important;
  min-width:0 !important;
}

.page-work-deadline-dashboard .workflow-step-info strong{
  color:#062758 !important;
  font-size:14px !important;
  font-weight:950 !important;
  letter-spacing:-.35px !important;
}

.page-work-deadline-dashboard .workflow-step-info span{
  color:#334b68 !important;
  font-size:12px !important;
  font-weight:900 !important;
  white-space:normal !important;
}

.page-work-deadline-dashboard .workflow-step-status{
  display:flex !important;
  align-items:center !important;
  flex-wrap:wrap !important;
  gap:5px !important;
}

.page-work-deadline-dashboard .workflow-step-action{
  min-width:0 !important;
}

.page-work-deadline-dashboard .workflow-row-form{
  display:grid !important;
  grid-template-columns:minmax(0, 1fr) minmax(120px, .8fr) !important;
  grid-template-areas:
    "main memo" !important;
  gap:7px !important;
  align-items:end !important;
  margin:0 !important;
}

.page-work-deadline-dashboard .workflow-input-line{
  grid-area:main !important;
  display:grid !important;
  grid-template-columns:118px minmax(90px, 1fr) !important;
  gap:6px !important;
  align-items:center !important;
}

.page-work-deadline-dashboard .workflow-date{
  min-height:34px !important;
  padding:6px 8px !important;
  font-size:12px !important;
  font-weight:950 !important;
}

.page-work-deadline-dashboard .workflow-row-form .btn{
  width:100% !important;
  min-height:34px !important;
  white-space:nowrap !important;
}

.page-work-deadline-dashboard .workflow-memo{
  grid-area:memo !important;
  min-height:34px !important;
  padding:6px 9px !important;
  font-size:12px !important;
}

.page-work-deadline-dashboard .workflow-double-actions{
  display:grid !important;
  gap:7px !important;
}

.page-work-deadline-dashboard .workflow-empty-guide{
  padding:16px !important;
  border:1px dashed #bdd1ef !important;
  border-radius:16px !important;
  background:#fff !important;
  color:#52657d !important;
  font-size:13px !important;
  font-weight:900 !important;
}

@media(max-width:1180px){
  .page-work-deadline-dashboard .workflow-progress-grid{
    grid-template-columns:1fr !important;
  }
}

@media(max-width:760px){
  .page-work-deadline-dashboard .workflow-case-head,
  .page-work-deadline-dashboard .workflow-step-row,
  .page-work-deadline-dashboard .workflow-row-form,
  .page-work-deadline-dashboard .workflow-input-line{
    grid-template-columns:1fr !important;
    grid-template-areas:none !important;
  }

  .page-work-deadline-dashboard .workflow-memo,
  .page-work-deadline-dashboard .workflow-input-line{
    grid-area:auto !important;
  }

  .page-work-deadline-dashboard .workflow-case-tools{
    justify-content:flex-start !important;
  }
}


/* dashboard workflow progress table alignment fix v22 */
.page-work-deadline-dashboard .workflow-progress-grid{
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr) !important;
  align-items:start !important;
}

.page-work-deadline-dashboard .workflow-progress-col{
  min-width:0 !important;
}

.page-work-deadline-dashboard .workflow-step-row{
  grid-template-columns:minmax(132px, 0.95fr) 86px minmax(190px, 1.2fr) !important;
  gap:8px !important;
  align-items:center !important;
  min-height:64px !important;
  padding:9px 10px !important;
}

.page-work-deadline-dashboard .workflow-step-info{
  min-width:0 !important;
}

.page-work-deadline-dashboard .workflow-step-info strong{
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

.page-work-deadline-dashboard .workflow-step-info span{
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

.page-work-deadline-dashboard .workflow-step-status{
  justify-content:center !important;
  min-width:0 !important;
}

.page-work-deadline-dashboard .workflow-step-status .badge{
  max-width:86px !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}

.page-work-deadline-dashboard .workflow-step-action{
  min-width:0 !important;
  overflow:visible !important;
}

.page-work-deadline-dashboard .workflow-row-form{
  display:grid !important;
  grid-template-columns:1fr !important;
  grid-template-areas:
    "main"
    "memo" !important;
  gap:6px !important;
  align-items:stretch !important;
  width:100% !important;
  min-width:0 !important;
}

.page-work-deadline-dashboard .workflow-input-line{
  grid-area:main !important;
  display:grid !important;
  grid-template-columns:minmax(112px, 1fr) minmax(76px, auto) !important;
  gap:6px !important;
  min-width:0 !important;
}

.page-work-deadline-dashboard .workflow-date{
  width:100% !important;
  min-width:0 !important;
  height:34px !important;
  min-height:34px !important;
  padding:6px 8px !important;
  font-size:12px !important;
}

.page-work-deadline-dashboard .workflow-row-form .btn{
  width:100% !important;
  min-width:76px !important;
  height:34px !important;
  min-height:34px !important;
  padding-left:9px !important;
  padding-right:9px !important;
  font-size:12px !important;
  white-space:nowrap !important;
}

.page-work-deadline-dashboard .workflow-memo{
  grid-area:memo !important;
  width:100% !important;
  min-width:0 !important;
  height:32px !important;
  min-height:32px !important;
  padding:6px 9px !important;
  font-size:12px !important;
}

.page-work-deadline-dashboard .workflow-double-actions{
  grid-template-columns:1fr !important;
  gap:6px !important;
}

.page-work-deadline-dashboard .workflow-empty-guide{
  min-height:49px !important;
  display:flex !important;
  align-items:center !important;
}

@media(max-width:1280px){
  .page-work-deadline-dashboard .workflow-progress-grid{
    grid-template-columns:1fr !important;
  }

  .page-work-deadline-dashboard .workflow-step-row{
    grid-template-columns:minmax(150px, .9fr) 92px minmax(220px, 1.25fr) !important;
  }
}

@media(max-width:760px){
  .page-work-deadline-dashboard .workflow-step-row{
    grid-template-columns:1fr !important;
  }

  .page-work-deadline-dashboard .workflow-step-status{
    justify-content:flex-start !important;
  }

  .page-work-deadline-dashboard .workflow-input-line{
    grid-template-columns:1fr !important;
  }
}


/* global clickable cursor v1 */
a[href],
button,
.btn,
input[type="button"],
input[type="submit"],
input[type="reset"],
input[type="checkbox"],
input[type="radio"],
input[type="date"],
input[type="month"],
select,
summary,
label[for],
[role="button"],
[data-popup-link],
[data-tab],
[data-open-work-panel],
.badge-btn,
.calendar-day,
.day-cell,
.deadline-step-row,
.work-case-step-row,
.task-stat-card,
.work-case-stat-card,
.work-case-step-row,
.work-case-companyline a,
.deadline-companyline a,
.workflow-case-tools a,
.schedule-actions a,
.schedule-actions button{
  cursor:pointer !important;
}

button:disabled,
.btn:disabled,
input:disabled,
select:disabled,
.is-disabled,
[aria-disabled="true"]{
  cursor:not-allowed !important;
}

/* workflow completed date text v1 */
.page-work-deadline-dashboard .workflow-done-date{
  display:inline-grid !important;
  grid-template-columns:auto auto !important;
  align-items:baseline !important;
  gap:6px !important;
  color:#087736 !important;
  white-space:nowrap !important;
  line-height:1.1 !important;
}

.page-work-deadline-dashboard .workflow-done-date em{
  font-style:normal !important;
  font-size:13px !important;
  font-weight:950 !important;
  color:#087736 !important;
}

.page-work-deadline-dashboard .workflow-done-date b{
  font-size:16px !important;
  font-weight:950 !important;
  letter-spacing:-.25px !important;
  color:#064f27 !important;
}

.page-work-deadline-dashboard .workflow-done-date.is-late,
.page-work-deadline-dashboard .workflow-done-date.is-late em,
.page-work-deadline-dashboard .workflow-done-date.is-late b{
  color:#d1372b !important;
}

.page-work-deadline-dashboard .workflow-step-status{
  justify-content:flex-start !important;
}

@media(max-width:520px){
  .page-work-deadline-dashboard .workflow-done-date{
    grid-template-columns:1fr !important;
    gap:2px !important;
  }
}


/* work case view inline edit/delete v1 */
.page-work-case-view .work-case-detail-list-card{
  border-radius:24px !important;
  border:1px solid #cfe0f6 !important;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%) !important;
}

.page-work-case-view .work-case-detail-list{
  display:grid !important;
  gap:10px !important;
}

.page-work-case-view .work-case-detail-row{
  display:grid !important;
  gap:10px !important;
  padding:14px !important;
  border:1px solid #cfe0f6 !important;
  border-radius:20px !important;
  background:#fff !important;
  box-shadow:0 8px 18px rgba(28,54,89,.05) !important;
}

.page-work-case-view .work-case-detail-head{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(360px, auto) !important;
  gap:12px !important;
  align-items:center !important;
}

.page-work-case-view .work-case-detail-title{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:7px !important;
  align-items:center !important;
  min-width:0 !important;
}

.page-work-case-view .work-case-detail-title strong{
  color:#062758 !important;
  font-size:17px !important;
  line-height:1.25 !important;
  font-weight:950 !important;
  letter-spacing:-.45px !important;
}

.page-work-case-view .work-case-detail-actions{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  gap:7px !important;
  align-items:center !important;
}

.page-work-case-view .work-case-detail-edit-form{
  display:grid !important;
  grid-template-columns:132px minmax(160px,1fr) 64px !important;
  gap:6px !important;
  margin:0 !important;
}

.page-work-case-view .work-case-detail-delete-form{
  margin:0 !important;
}

.page-work-case-view .detail-event-date,
.page-work-case-view .detail-event-memo{
  min-height:36px !important;
  padding:7px 9px !important;
  font-size:13px !important;
  font-weight:900 !important;
}

.page-work-case-view .work-case-detail-deadline{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:6px 10px !important;
  align-items:center !important;
  padding:9px 10px !important;
  border:1px solid #d6e5f8 !important;
  border-radius:14px !important;
  background:#f8fbff !important;
  color:#334b68 !important;
  font-size:12px !important;
  font-weight:850 !important;
}

.page-work-case-view .detail-deadline-name{
  color:#062758 !important;
  font-size:13px !important;
  font-weight:950 !important;
}

.page-work-case-view .detail-late-text{
  color:#d1372b !important;
  font-weight:950 !important;
}

@media(max-width:920px){
  .page-work-case-view .work-case-detail-head,
  .page-work-case-view .work-case-detail-actions{
    grid-template-columns:1fr !important;
  }
}

@media(max-width:560px){
  .page-work-case-view .work-case-detail-edit-form{
    grid-template-columns:1fr !important;
  }
}


/* dashboard final/done consistency v23 */
.page-work-deadline-dashboard .workflow-case-card.is-done .workflow-step-row.is-done{
  border-color:#9be1b4 !important;
}

.page-work-deadline-dashboard .workflow-case-card.is-done .workflow-case-head{
  border-bottom-color:#b9e9c9 !important;
}


/* dashboard anchor/repair due text readability v24 */
.page-work-deadline-dashboard .workflow-case-card{
  scroll-margin-top:86px !important;
}

.page-work-deadline-dashboard .workflow-step-info span{
  overflow:visible !important;
  text-overflow:clip !important;
  white-space:normal !important;
}

.page-work-deadline-dashboard .workflow-step-row .workflow-step-info span{
  line-height:1.35 !important;
}


/* work case view popup mode v1 */
body.work-case-embed{
  padding:16px !important;
  background:#f3f7ff !important;
}

body.work-case-embed .stack{
  max-width:960px !important;
  margin:0 auto !important;
}

body.work-case-embed .work-case-head,
body.work-case-embed .work-case-detail-list-card{
  box-shadow:0 14px 30px rgba(28,54,89,.08) !important;
}


/* estimate module v2 refinements */
.page-estimate .estimate-item-tools{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:7px !important;
}

.page-estimate .estimate-item-row{
  grid-template-columns:minmax(210px,1.8fr) minmax(190px,1.6fr) 76px 70px 105px 105px 105px 120px minmax(150px,1fr) 64px !important;
}

.page-estimate .estimate-form-card{
  max-width:1280px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

.page-estimate .estimate-total-box{
  display:grid !important;
  grid-template-columns:repeat(3, minmax(0,1fr)) !important;
  gap:10px !important;
  justify-content:stretch !important;
}


.page-estimate .estimate-total-box .estimate-total-grand{
  background:#eef6ff !important;
  border-color:#bcd1f5 !important;
}

.page-estimate .estimate-live-preview{
  display:grid !important;
  gap:12px !important;
  margin-top:16px !important;
  padding:16px !important;
  border:1px solid #cfe0f6 !important;
  border-radius:22px !important;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%) !important;
}

.page-estimate .estimate-preview-head{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  padding-bottom:10px !important;
  border-bottom:1px solid #d8e4f4 !important;
}

.page-estimate .estimate-preview-head strong{
  display:block !important;
  color:#062758 !important;
  font-size:18px !important;
  font-weight:950 !important;
}

.page-estimate .estimate-preview-head span,
.page-estimate .estimate-preview-recipient{
  color:#52657d !important;
  font-size:13px !important;
  font-weight:850 !important;
}

.page-estimate .estimate-preview-title{
  color:#062758 !important;
  font-size:22px !important;
  font-weight:950 !important;
  letter-spacing:-.5px !important;
}

.page-estimate .estimate-preview-money{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  align-items:center !important;
}

.page-estimate .estimate-preview-money span,
.page-estimate .estimate-preview-money strong{
  display:inline-flex !important;
  gap:5px !important;
  align-items:baseline !important;
  padding:8px 11px !important;
  border-radius:999px !important;
  border:1px solid #d6e5f8 !important;
  background:#fff !important;
  color:#334b68 !important;
  font-size:13px !important;
  font-weight:900 !important;
}

.page-estimate .estimate-preview-money strong{
  background:#eef6ff !important;
  border-color:#bcd1f5 !important;
  color:#0749b5 !important;
}

.page-estimate .estimate-preview-table{
  display:grid !important;
  gap:6px !important;
}

.page-estimate .estimate-preview-row{
  display:grid !important;
  grid-template-columns:1.8fr 1.4fr 100px 120px !important;
  gap:8px !important;
  align-items:center !important;
  padding:8px 10px !important;
  border:1px solid #d6e5f8 !important;
  border-radius:12px !important;
  background:#fff !important;
  font-size:13px !important;
  font-weight:850 !important;
}

.page-estimate .estimate-preview-row.head{
  background:#f3f8ff !important;
  color:#334b68 !important;
  font-weight:950 !important;
}

.page-estimate .estimate-preview-row strong{
  text-align:right !important;
  color:#061d46 !important;
}


.estimate-preview-paper{
  max-width:1160px !important;
  margin:0 auto !important;
}

.estimate-preview-top{
  display:flex !important;
  justify-content:space-between !important;
  align-items:center !important;
  gap:12px !important;
  margin-bottom:14px !important;
}

.estimate-preview-document{
  display:grid !important;
  gap:14px !important;
  padding:26px !important;
  border-radius:24px !important;
  border:1px solid #cfe0f6 !important;
  background:#fff !important;
  box-shadow:0 18px 38px rgba(28,54,89,.10) !important;
}

.estimate-preview-doc-title{
  text-align:center !important;
  font-size:30px !important;
  font-weight:950 !important;
  color:#061d46 !important;
  letter-spacing:8px !important;
}

.estimate-preview-doc-meta,
.estimate-preview-doc-total{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px 14px !important;
  color:#334b68 !important;
  font-weight:900 !important;
}

.estimate-preview-doc-project{
  padding:12px 14px !important;
  border-radius:16px !important;
  background:#f8fbff !important;
  border:1px solid #d6e5f8 !important;
  color:#062758 !important;
  font-size:20px !important;
  font-weight:950 !important;
}

.estimate-preview-doc-total strong{
  color:#0749b5 !important;
  font-size:18px !important;
}

.estimate-preview-doc-table{
  width:100% !important;
  border-collapse:collapse !important;
  font-size:13px !important;
}

.estimate-preview-doc-table th,
.estimate-preview-doc-table td{
  border:1px solid #d6e5f8 !important;
  padding:8px !important;
}

.estimate-preview-doc-table th{
  background:#f3f8ff !important;
  color:#334b68 !important;
  font-weight:950 !important;
}

.estimate-preview-doc-table td:nth-child(5),
.estimate-preview-doc-table td:nth-child(6),
.estimate-preview-doc-table td:nth-child(7){
  text-align:right !important;
}

@media(max-width:980px){
  .page-estimate .estimate-item-row{
    grid-template-columns:1fr 1fr !important;
  }

  .page-estimate .estimate-total-box{
    grid-template-columns:1fr !important;
  }

  .page-estimate .estimate-preview-row{
    grid-template-columns:1fr 1fr !important;
  }
}


/* estimate popup layout hard fix v3 */
.estimate-popup-body{
  margin:0 !important;
  padding:18px 22px !important;
  min-width:1180px !important;
  background:#eef5ff !important;
}

.estimate-popup-body .estimate-form-stack{
  width:100% !important;
  max-width:1320px !important;
  margin:0 auto !important;
}

.estimate-popup-body .row{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  margin-bottom:12px !important;
}

.estimate-popup-body .row h2{
  margin:0 !important;
  font-size:24px !important;
  font-weight:950 !important;
  color:#061d46 !important;
}

.estimate-popup-body .estimate-form-card{
  width:100% !important;
  max-width:none !important;
  padding:16px !important;
  border-radius:22px !important;
}

.estimate-popup-body .estimate-form-grid{
  display:grid !important;
  grid-template-columns:180px 170px 150px 140px minmax(210px,1fr) minmax(210px,1fr) !important;
  gap:10px !important;
  align-items:end !important;
}

.estimate-popup-body .estimate-form-grid .field{
  min-width:0 !important;
}

.estimate-popup-body .estimate-form-grid .grow2{
  grid-column:span 2 !important;
}

.estimate-popup-body .estimate-form-grid label,
.estimate-popup-body .field label{
  display:block !important;
  margin:0 0 5px !important;
  font-size:12px !important;
  font-weight:950 !important;
  color:#334b68 !important;
}

.estimate-popup-body .input,
.estimate-popup-body select.input{
  height:38px !important;
  min-height:38px !important;
  padding:7px 10px !important;
  border-radius:13px !important;
  box-sizing:border-box !important;
  font-size:14px !important;
}

.estimate-popup-body .estimate-items-head{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
}

.estimate-popup-body .estimate-item-tools{
  display:flex !important;
  flex-wrap:wrap !important;
  justify-content:flex-end !important;
  gap:7px !important;
}

.estimate-popup-body .estimate-items{
  display:block !important;
  overflow-x:auto !important;
  padding-bottom:8px !important;
}

.estimate-popup-body .estimate-item-row{
  display:grid !important;
  grid-template-columns:250px 230px 74px 68px 105px 105px 105px 115px 180px 62px !important;
  gap:6px !important;
  align-items:center !important;
  min-width:1320px !important;
  margin-bottom:7px !important;
}

.estimate-popup-body .estimate-item-header{
  color:#334b68 !important;
  font-size:12px !important;
  font-weight:950 !important;
}

.estimate-popup-body[data-template-type="REPAIR"] .est-col-unit,
.estimate-popup-body .estimate-form-card[data-template-type="REPAIR"] .est-col-unit,
.estimate-popup-body form[data-template-type="REPAIR"] .est-col-unit{
  display:none !important;
}

.estimate-popup-body .estimate-form-card[data-template-type="MATERIAL"] .est-col-material,
.estimate-popup-body .estimate-form-card[data-template-type="MATERIAL"] .est-col-labor,
.estimate-popup-body form[data-template-type="MATERIAL"] .est-col-material,
.estimate-popup-body form[data-template-type="MATERIAL"] .est-col-labor{
  display:none !important;
}

.estimate-popup-body .estimate-total-box{
  display:grid !important;
  grid-template-columns:repeat(3, minmax(0,1fr)) !important;
  gap:10px !important;
  margin-top:12px !important;
}

.estimate-popup-body .estimate-total-box > div{
  display:flex !important;
  align-items:baseline !important;
  justify-content:flex-end !important;
  gap:6px !important;
  padding:10px 12px !important;
  border:1px solid #d6e5f8 !important;
  border-radius:16px !important;
  background:#fff !important;
}

.estimate-popup-body .estimate-total-box strong{
  font-size:22px !important;
}

.estimate-popup-body .estimate-live-preview{
  margin-top:14px !important;
  padding:14px !important;
  border-radius:18px !important;
}

.estimate-popup-body .estimate-preview-row{
  grid-template-columns:260px 230px 100px 120px !important;
}


/* estimate money/button fix v4 */
.page-estimate .estimate-live-preview.is-preview-highlight{
  outline:3px solid rgba(47,111,237,.35) !important;
  box-shadow:0 0 0 7px rgba(47,111,237,.10), 0 18px 38px rgba(28,54,89,.12) !important;
}


/* estimate misc rounding fix v5 */
.page-estimate [data-preview-rounding]{
  margin-left:3px !important;
  font-style:normal !important;
  font-size:12px !important;
  color:#52657d !important;
}


/* estimate cost sheet + vat v6 */
.page-estimate .estimate-preview-row-full{
  grid-template-columns:1.25fr 1.1fr 70px 70px 110px 110px 120px 1fr !important;
}

.page-estimate .estimate-cost-sheet-preview{
  margin-top:12px !important;
  padding:14px !important;
  border:1px solid #cfe0f6 !important;
  border-radius:18px !important;
  background:#fff !important;
}

.page-estimate .estimate-cost-title{
  margin-bottom:8px !important;
  color:#061d46 !important;
  font-size:17px !important;
  font-weight:950 !important;
}

.page-estimate .estimate-cost-grid{
  display:grid !important;
  grid-template-columns:110px minmax(180px,1fr) 170px minmax(140px,1fr) !important;
  border:1px solid #97a9bd !important;
  font-size:13px !important;
  font-weight:850 !important;
  color:#061d46 !important;
}

.page-estimate .estimate-cost-grid > *{
  padding:8px 9px !important;
  border-right:1px dotted #97a9bd !important;
  border-bottom:1px dotted #97a9bd !important;
  background:#fff !important;
}

.page-estimate .estimate-cost-grid strong{
  text-align:right !important;
  font-weight:950 !important;
}

.page-estimate .estimate-cost-grid .cost-head,
.page-estimate .estimate-cost-grid .cost-sub,
.page-estimate .estimate-cost-grid .cost-total{
  background:#d7d7d7 !important;
  font-weight:950 !important;
}

.page-estimate .estimate-cost-grid .cost-left{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  background:#f7f7f7 !important;
  font-weight:950 !important;
}

.page-estimate [data-estimate-cost-sheet-toggle].primary{
  background:#2563eb !important;
  color:#fff !important;
  border-color:#2563eb !important;
}

@media(max-width:980px){

}


/* estimate toggle alignment fix v7 */
.page-estimate .estimate-total-grand{
  display:grid !important;
  grid-template-columns:auto auto 1fr auto !important;
  gap:8px !important;
  align-items:center !important;
}

.page-estimate .estimate-round-buttons{
  display:inline-flex !important;
  gap:5px !important;
  align-items:center !important;
  justify-content:flex-start !important;
}

.page-estimate .btn.tiny{
  min-height:28px !important;
  padding:5px 8px !important;
  border-radius:10px !important;
  font-size:12px !important;
  font-weight:950 !important;
}

.page-estimate .estimate-preview-head > div{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:6px 12px !important;
  align-items:center !important;
}

.page-estimate .estimate-preview-row-full{
  grid-template-columns:minmax(180px,1.35fr) minmax(150px,1.1fr) 70px 70px 110px 110px 120px minmax(120px,1fr) !important;
}

.page-estimate .estimate-preview-row-full span:nth-child(3),
.page-estimate .estimate-preview-row-full span:nth-child(5),
.page-estimate .estimate-preview-row-full span:nth-child(6),
.page-estimate .estimate-preview-row-full strong{
  text-align:right !important;
}

.page-estimate .estimate-preview-row-full span,
.page-estimate .estimate-preview-row-full strong{
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}

@media(max-width:980px){
  .page-estimate .estimate-total-grand{
    grid-template-columns:1fr !important;
    justify-items:end !important;
  }

  .page-estimate .estimate-round-buttons{
    flex-wrap:wrap !important;
    justify-content:flex-end !important;
  }

  .page-estimate .estimate-preview-row-full{
    grid-template-columns:1fr 1fr !important;
  }
}


/* estimate list popup polish v8 */
.page-estimate .estimate-filter-card{
  max-width:980px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding:16px !important;
  border-radius:22px !important;
}

.page-estimate .estimate-filter{
  display:grid !important;
  grid-template-columns:170px 170px minmax(260px,1fr) 100px !important;
  gap:10px !important;
  align-items:end !important;
}

.page-estimate .estimate-filter .field.grow{
  grid-column:auto !important;
}

.page-estimate .estimate-filter .input{
  height:42px !important;
  border-radius:14px !important;
}

.page-estimate .estimate-list{
  max-width:980px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  display:grid !important;
  gap:12px !important;
}

.page-estimate .estimate-card{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  gap:14px !important;
  align-items:center !important;
  padding:18px !important;
  border-radius:22px !important;
  border:1px solid #cfe0f6 !important;
  background:linear-gradient(180deg,#fff 0%,#f9fcff 100%) !important;
  box-shadow:0 12px 28px rgba(28,54,89,.08) !important;
}

.page-estimate .estimate-card:hover{
  border-color:#8fb7ff !important;
  box-shadow:0 18px 36px rgba(28,54,89,.12) !important;
}

.page-estimate .estimate-titleline{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:7px !important;
  align-items:center !important;
}

.page-estimate .estimate-titleline strong{
  color:#061d46 !important;
  font-size:18px !important;
  font-weight:950 !important;
  letter-spacing:-.4px !important;
}

.page-estimate .estimate-meta{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:9px 14px !important;
  margin-top:8px !important;
  color:#334b68 !important;
  font-size:14px !important;
  font-weight:850 !important;
}

.page-estimate .estimate-meta .estimate-no{
  color:#0749b5 !important;
  font-weight:950 !important;
}

.page-estimate .estimate-meta b{
  color:#061d46 !important;
  font-size:17px !important;
  font-weight:950 !important;
}

.page-estimate .estimate-actions{
  display:flex !important;
  gap:7px !important;
  justify-content:flex-end !important;
  align-items:center !important;
}

.page-estimate .estimate-view-stack{
  max-width:1180px !important;
  margin:0 auto !important;
}

.estimate-popup-body.page-estimate-view{
  margin:0 !important;
  padding:18px 22px !important;
  background:#eef5ff !important;
}

.estimate-popup-body .estimate-view-head{
  border-radius:22px !important;
  box-shadow:0 14px 30px rgba(28,54,89,.08) !important;
}

@media(max-width:980px){
  .page-estimate .estimate-filter,
  .page-estimate .estimate-card{
    grid-template-columns:1fr !important;
  }

  .page-estimate .estimate-actions{
    justify-content:flex-start !important;
  }
}


/* estimate cost sheet merge + detail view hard CSS v9 */
.page-estimate .estimate-cost-grid{
  display:grid !important;
  grid-template-columns:110px minmax(180px,1fr) 170px minmax(140px,1fr) !important;
  align-items:stretch !important;
}

.page-estimate .estimate-cost-grid > *{
  min-height:32px !important;
  display:flex !important;
  align-items:center !important;
}

.page-estimate .estimate-cost-grid strong{
  justify-content:flex-end !important;
}

.page-estimate .estimate-cost-grid .cost-left-main{
  grid-row:span 3 !important;
  justify-content:center !important;
  text-align:center !important;
  font-weight:950 !important;
  background:#f7f7f7 !important;
}

.page-estimate .estimate-cost-grid .cost-wide{
  grid-column:1 / span 2 !important;
  font-weight:950 !important;
}

.page-estimate .estimate-cost-grid .cost-sub,
.page-estimate .estimate-cost-grid .cost-total{
  background:#d7d7d7 !important;
  font-weight:950 !important;
}

.page-estimate-view .estimate-view-table{
  display:grid !important;
  gap:7px !important;
  margin-top:10px !important;
}

.page-estimate-view .estimate-view-row{
  display:grid !important;
  grid-template-columns:minmax(180px,1.3fr) minmax(150px,1fr) 80px 70px 120px 130px minmax(120px,1fr) !important;
  gap:8px !important;
  align-items:center !important;
  padding:9px 10px !important;
  border:1px solid #d6e5f8 !important;
  border-radius:14px !important;
  background:#fff !important;
  color:#061d46 !important;
  font-size:13px !important;
  font-weight:850 !important;
}

.page-estimate-view .estimate-view-row.head{
  background:#f3f8ff !important;
  color:#334b68 !important;
  font-weight:950 !important;
}

.page-estimate-view .estimate-view-row span:nth-child(3),
.page-estimate-view .estimate-view-row span:nth-child(5),
.page-estimate-view .estimate-view-row strong{
  text-align:right !important;
}

.page-estimate-view .estimate-view-row strong{
  color:#061d46 !important;
  font-weight:950 !important;
}

.page-estimate-view .estimate-view-total{
  display:flex !important;
  justify-content:flex-end !important;
  gap:12px !important;
  margin-top:8px !important;
  padding:14px !important;
  border-radius:16px !important;
  border:1px solid #cfe0f6 !important;
  background:#eef6ff !important;
  color:#061d46 !important;
  font-size:18px !important;
  font-weight:950 !important;
}

.page-estimate-view .card .card-header{
  display:flex !important;
  justify-content:space-between !important;
  align-items:center !important;
  padding-bottom:10px !important;
  margin-bottom:8px !important;
  border-bottom:1px solid #d8e4f4 !important;
}

.page-estimate-view .card .card-title{
  color:#062758 !important;
  font-size:16px !important;
  font-weight:950 !important;
}

@media(max-width:980px){
  .page-estimate-view .estimate-view-row{
    grid-template-columns:1fr 1fr !important;
  }

  .page-estimate .estimate-cost-grid{
    grid-template-columns:1fr 1fr !important;
  }

  .page-estimate .estimate-cost-grid .cost-left-main,
  .page-estimate .estimate-cost-grid .cost-wide{
    grid-column:auto !important;
    grid-row:auto !important;
  }
}


/* =========================================================
   ESTIMATE CLEAN CONSOLIDATED CSS v25
   - v10~v24 강제 덮어쓰기 충돌 제거 후 단일 기준 적용
   - preview/view/print 문서 하단선/견적별도사항 잘림 수정
   ========================================================= */

/* ---------- estimate list ---------- */
body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .stack{
  width:min(980px, calc(100vw - 48px)) !important;
  max-width:980px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .stack > .row{
  width:100% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  flex-wrap:nowrap !important;
}
body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .stack > .row .actions{
  margin-left:auto !important;
  display:flex !important;
  justify-content:flex-end !important;
  gap:8px !important;
}
.page-estimate .estimate-filter-card,
.page-estimate .estimate-list{
  width:100% !important;
  max-width:980px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
}
.page-estimate .estimate-filter{
  display:grid !important;
  grid-template-columns:150px 150px minmax(0,1fr) 96px !important;
  gap:10px !important;
  align-items:end !important;
}
.page-estimate .estimate-card{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 96px !important;
  gap:14px !important;
  align-items:center !important;
  padding:18px !important;
  border-radius:22px !important;
  border:1px solid #cfe0f6 !important;
  background:linear-gradient(180deg,#fff 0%,#f9fcff 100%) !important;
  box-shadow:0 12px 28px rgba(28,54,89,.08) !important;
}
.page-estimate .estimate-actions{
  display:flex !important;
  justify-content:flex-end !important;
  align-items:center !important;
  gap:7px !important;
}

/* ---------- estimate form ---------- */
body.page-estimate-form,
body.estimate-popup-body.page-estimate-form{
  min-width:1480px !important;
  overflow-x:auto !important;
}
body.page-estimate-form .estimate-form-stack,
body.estimate-popup-body.page-estimate-form .estimate-form-stack{
  width:1440px !important;
  max-width:1440px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
body.page-estimate-form .estimate-form-card,
body.estimate-popup-body.page-estimate-form .estimate-form-card{
  width:1440px !important;
  max-width:1440px !important;
  padding:16px !important;
  border-radius:22px !important;
  box-sizing:border-box !important;
}
.page-estimate .estimate-cost-dependent{display:none !important;}
.page-estimate form[data-cost-sheet-on="1"] .estimate-cost-dependent,
.page-estimate .estimate-form-card[data-cost-sheet-on="1"] .estimate-cost-dependent{display:block !important;}

body.page-estimate-form .estimate-form-grid-reordered,
body.estimate-popup-body.page-estimate-form .estimate-form-grid-reordered{
  display:grid !important;
  grid-template-columns:300px 140px 130px 110px 120px 170px 170px minmax(180px,1fr) !important;
  gap:9px !important;
  align-items:end !important;
}
body.page-estimate-form .estimate-title-field,
body.estimate-popup-body.page-estimate-form .estimate-title-field{grid-column:1 / span 2 !important;}
body.page-estimate-form .estimate-memo-field,
body.estimate-popup-body.page-estimate-form .estimate-memo-field{grid-column:5 / span 2 !important;}
body.page-estimate-form .estimate-special-terms-input,
body.estimate-popup-body.page-estimate-form .estimate-special-terms-input{
  min-height:76px !important;
  height:76px !important;
}

body.page-estimate-form .estimate-items,
body.estimate-popup-body.page-estimate-form .estimate-items{
  overflow-x:auto !important;
  width:100% !important;
}
body.page-estimate-form .estimate-item-row,
body.estimate-popup-body.page-estimate-form .estimate-item-row{
  display:grid !important;
  grid-template-columns:260px 230px 64px 64px 108px 116px 108px 116px 106px 110px 155px 62px !important;
  min-width:1440px !important;
  gap:6px !important;
  align-items:center !important;
  margin-bottom:7px !important;
}
body.page-estimate-form .estimate-item-header,
body.estimate-popup-body.page-estimate-form .estimate-item-header{
  position:sticky !important;
  top:0 !important;
  z-index:2 !important;
  background:#fff !important;
  color:#334b68 !important;
  font-size:12px !important;
  font-weight:950 !important;
}
body.page-estimate-form .estimate-total-box,
body.estimate-popup-body.page-estimate-form .estimate-total-box{
  display:grid !important;
  grid-template-columns:1fr 1fr 1.4fr !important;
  gap:10px !important;
  margin-top:12px !important;
}
.page-estimate .estimate-total-box > div{
  display:flex !important;
  justify-content:flex-end !important;
  align-items:baseline !important;
  gap:7px !important;
  padding:12px !important;
  border:1px solid #d6e5f8 !important;
  border-radius:16px !important;
  background:#fff !important;
}
.page-estimate .estimate-total-grand{
  display:grid !important;
  grid-template-columns:auto auto auto 1fr auto !important;
  gap:8px !important;
  align-items:center !important;
  background:#eef6ff !important;
  border-color:#bcd1f5 !important;
}
.page-estimate .estimate-round-buttons{
  display:inline-flex !important;
  flex-wrap:nowrap !important;
  gap:5px !important;
  align-items:center !important;
}

/* ---------- preview/view common shell ---------- */
.estimate-preview-popup{
  margin:0 !important;
  padding:18px !important;
  background:#f3f7ff !important;
}
.estimate-preview-paper,
body.page-estimate-view .estimate-view-stack,
body.estimate-popup-body.page-estimate-view .estimate-view-stack{
  width:1062px !important;
  max-width:1062px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
.estimate-preview-top,
body.page-estimate-view .estimate-view-stack > .row:first-child,
body.estimate-popup-body.page-estimate-view .estimate-view-stack > .row:first-child{
  width:1062px !important;
  max-width:1062px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  flex-wrap:nowrap !important;
  margin:0 auto 14px !important;
}
.estimate-preview-top .actions,
body.page-estimate-view .estimate-view-stack > .row:first-child .actions,
body.estimate-popup-body.page-estimate-view .estimate-view-stack > .row:first-child .actions{
  margin-left:auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:10px !important;
  flex-wrap:nowrap !important;
}
body.page-estimate-view,
body.estimate-popup-body.page-estimate-view{
  min-width:1120px !important;
  overflow-x:auto !important;
}
body.page-estimate-view .estimate-view-head,
body.estimate-popup-body.page-estimate-view .estimate-view-head{
  width:1062px !important;
  max-width:1062px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
}
body.page-estimate-view .estimate-document-card,
body.estimate-popup-body.page-estimate-view .estimate-document-card{
  width:1062px !important;
  max-width:1062px !important;
  margin:14px auto 0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  overflow:visible !important;
  box-sizing:border-box !important;
}

/* ---------- document paper ---------- */
.page-estimate .estimate-document-stack{
  width:1062px !important;
  max-width:1062px !important;
  min-width:1062px !important;
  margin:0 auto !important;
  display:grid !important;
  gap:14px !important;
  box-sizing:border-box !important;
}
.page-estimate .estimate-document-paper{
  width:1062px !important;
  max-width:1062px !important;
  min-width:1062px !important;
  margin:0 auto !important;
  padding:0 !important;
  border:1px solid #222 !important;
  border-radius:0 !important;
  background:#fff !important;
  box-shadow:none !important;
  box-sizing:border-box !important;
  color:#000 !important;
  font-family:"Malgun Gothic", Arial, sans-serif !important;
}
.page-estimate .estimate-document-paper-page1{
  display:grid !important;
  grid-template-rows:auto auto auto auto 1fr !important;
  height:760px !important;
  min-height:760px !important;
  max-height:760px !important;
  overflow:hidden !important;
}
.page-estimate .estimate-document-paper-page2{
  min-height:760px !important;
  box-sizing:border-box !important;
}

/* title/top */
.page-estimate .estimate-doc-title{
  margin:0 !important;
  padding:14px 0 10px !important;
  border-bottom:2px solid #15803d !important;
  text-align:center !important;
  line-height:1 !important;
  font-size:34px !important;
  font-weight:950 !important;
  letter-spacing:26px !important;
  color:#000 !important;
}
.page-estimate .estimate-doc-top{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 390px !important;
  gap:16px !important;
  align-items:center !important;
  padding:10px 12px 12px !important;
  box-sizing:border-box !important;
}
.page-estimate .estimate-doc-intro{
  font-size:15px !important;
  line-height:1.55 !important;
  color:#000 !important;
  font-weight:850 !important;
}
.page-estimate .estimate-doc-intro p{
  margin:0 0 3px !important;
}
.page-estimate .estimate-doc-total-line{
  display:inline-block !important;
  border-bottom:1px solid #000 !important;
  padding-bottom:1px !important;
  font-weight:950 !important;
}
.page-estimate .estimate-company-block{
  display:flex !important;
  justify-content:flex-end !important;
  align-items:center !important;
}
.page-estimate .estimate-company-image{
  width:370px !important;
  max-width:370px !important;
  display:block !important;
  margin-left:auto !important;
}

/* cost sheet original table */
.page-estimate .estimate-cost-sheet-preview{
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:#fff !important;
}
.page-estimate .estimate-cost-table-original{
  width:100% !important;
  border-collapse:collapse !important;
  table-layout:fixed !important;
  border:0 !important;
  font-size:12px !important;
  font-weight:850 !important;
  color:#000 !important;
}
.page-estimate .estimate-cost-table-original .cost-col-1{width:64px !important;}
.page-estimate .estimate-cost-table-original .cost-col-2{width:64px !important;}
.page-estimate .estimate-cost-table-original .cost-col-3{width:auto !important;}
.page-estimate .estimate-cost-table-original .cost-col-4{width:190px !important;}
.page-estimate .estimate-cost-table-original .cost-col-5{width:260px !important;}
.page-estimate .estimate-cost-table-original th,
.page-estimate .estimate-cost-table-original td{
  border:1px dotted #000 !important;
  padding:4px 6px !important;
  height:24px !important;
  vertical-align:middle !important;
  color:#000 !important;
  background:#fff !important;
  box-sizing:border-box !important;
  line-height:1.18 !important;
}
.page-estimate .estimate-cost-table-original th{
  background:#c9c9c9 !important;
  text-align:center !important;
  font-weight:950 !important;
}
.page-estimate .estimate-cost-table-original .cost-head-diagonal{
  position:relative !important;
  text-align:left !important;
  overflow:hidden !important;
}
.page-estimate .estimate-cost-table-original .cost-head-diagonal::after{
  content:"" !important;
  position:absolute !important;
  left:-8px !important;
  top:0 !important;
  width:150% !important;
  height:1px !important;
  background:#000 !important;
  transform:rotate(8deg) !important;
  transform-origin:left top !important;
}
.page-estimate .estimate-cost-table-original .cost-head-left{
  position:relative !important;
  z-index:1 !important;
}
.page-estimate .estimate-cost-table-original .num{
  text-align:right !important;
  font-weight:950 !important;
}
.page-estimate .estimate-cost-table-original .cost-left-main,
.page-estimate .estimate-cost-table-original .cost-kind{
  text-align:center !important;
  font-weight:950 !important;
  line-height:1.35 !important;
}
.page-estimate .estimate-cost-table-original .cost-sub td,
.page-estimate .estimate-cost-table-original .cost-total td{
  background:#c9c9c9 !important;
  font-weight:950 !important;
}

/* special terms + bottom fill: only one bottom line */
.page-estimate .estimate-special-terms{
  margin:0 !important;
  padding:8px 9px !important;
  min-height:78px !important;
  border-top:1px solid #222 !important;
  border-right:0 !important;
  border-bottom:0 !important;
  border-left:0 !important;
  background:#fff !important;
  box-sizing:border-box !important;
  color:#000 !important;
  font-size:12px !important;
  font-weight:850 !important;
  line-height:1.45 !important;
  overflow:visible !important;
}
.page-estimate .estimate-special-title{
  font-weight:950 !important;
  margin-bottom:2px !important;
}
.page-estimate .estimate-special-line{
  display:block !important;
  min-height:16px !important;
}
.page-estimate .estimate-page-fill{
  display:block !important;
  height:auto !important;
  min-height:0 !important;
  align-self:stretch !important;
  background:#fff !important;
  background-image:none !important;
  border-top:1px solid #222 !important;
  border-right:0 !important;
  border-bottom:0 !important;
  border-left:0 !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
}

/* ---------- detail table page2 ---------- */
.page-estimate .estimate-detail-title{
  text-align:center !important;
  font-size:17px !important;
  font-weight:950 !important;
  padding:8px 0 !important;
  border-bottom:1px solid #222 !important;
}
.page-estimate .estimate-doc-table{
  width:100% !important;
  border-collapse:collapse !important;
  table-layout:fixed !important;
  background:#fff !important;
  color:#000 !important;
  font-size:12px !important;
  font-weight:850 !important;
}
.page-estimate .estimate-doc-table th,
.page-estimate .estimate-doc-table td{
  border:1px solid #222 !important;
  padding:5px 7px !important;
  height:24px !important;
  vertical-align:middle !important;
  box-sizing:border-box !important;
}
.page-estimate .estimate-doc-table th{
  text-align:center !important;
  font-weight:950 !important;
  background:#fff !important;
}
.page-estimate .estimate-doc-table .num{text-align:right !important;}
.page-estimate .estimate-doc-table .strong{font-weight:950 !important;}
.page-estimate .estimate-doc-table .estimate-doc-blank-row td{
  height:26px !important;
  background:#fff !important;
}
.page-estimate .estimate-doc-table .estimate-doc-summary td,
.page-estimate .estimate-doc-table .estimate-doc-grand td{
  height:26px !important;
  background:#f3f3f3 !important;
  font-weight:950 !important;
}
.page-estimate .estimate-doc-table .estimate-doc-grand td{
  background:#c9c9c9 !important;
}
.page-estimate .estimate-detail-table th:nth-child(1),
.page-estimate .estimate-detail-table td:nth-child(1){width:180px !important;}
.page-estimate .estimate-detail-table th:nth-child(2),
.page-estimate .estimate-detail-table td:nth-child(2){width:140px !important;}
.page-estimate .estimate-detail-table th:nth-child(3),
.page-estimate .estimate-detail-table td:nth-child(3){width:52px !important;}
.page-estimate .estimate-detail-table th:nth-child(4),
.page-estimate .estimate-detail-table td:nth-child(4){width:52px !important;}
.page-estimate .estimate-doc-table thead.estimate-detail-thead th{
  text-align:center !important;
  vertical-align:middle !important;
  font-weight:950 !important;
  background:#fff !important;
  color:#000 !important;
  border:1px solid #222 !important;
}
.page-estimate .estimate-doc-table thead.estimate-detail-thead .estimate-detail-head-1 th{height:8mm !important;}
.page-estimate .estimate-doc-table thead.estimate-detail-thead .estimate-detail-head-2 th,
.page-estimate .estimate-doc-table thead.estimate-detail-thead .estimate-detail-head-3 th{height:5mm !important;}

/* ---------- print ---------- */
@page{
  size:A4 landscape;
  margin:8mm;
}
.estimate-print-page{
  background:#dcdcdc !important;
}
.estimate-print-toolbar{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  padding:12px 18px !important;
  background:#eef5ff !important;
}
.estimate-print-wrap{
  width:283mm !important;
  max-width:283mm !important;
  margin:0 auto !important;
  padding:0 !important;
}
body.estimate-print-page .estimate-document-stack,
body.estimate-print-page .estimate-document-paper{
  width:283mm !important;
  min-width:283mm !important;
  max-width:283mm !important;
}
body.estimate-print-page .estimate-document-paper-page1{
  height:200mm !important;
  min-height:200mm !important;
  max-height:200mm !important;
}
body.estimate-print-page .estimate-document-paper-page2{
  min-height:200mm !important;
}
body.estimate-print-page .estimate-doc-title{
  padding:10px 0 8px !important;
  font-size:32px !important;
}
body.estimate-print-page .estimate-doc-top{
  padding:8px 12px 10px !important;
}
body.estimate-print-page .estimate-doc-intro{
  font-size:14px !important;
  line-height:1.45 !important;
}
body.estimate-print-page .estimate-company-image{
  width:355px !important;
  max-width:355px !important;
}
body.estimate-print-page .estimate-cost-table-original th,
body.estimate-print-page .estimate-cost-table-original td{
  height:6.35mm !important;
  padding:1.2mm 1.6mm !important;
  font-size:10.5px !important;
}
body.estimate-print-page .estimate-special-terms{
  min-height:23mm !important;
  padding:2mm 2.4mm !important;
  font-size:10.5px !important;
  line-height:1.35 !important;
}
@media print{
  .no-print,
  .estimate-print-toolbar{
    display:none !important;
  }
  html, body{
    width:297mm !important;
    height:210mm !important;
    margin:0 !important;
    padding:0 !important;
    background:#fff !important;
  }
  .estimate-print-wrap{
    width:281mm !important;
    max-width:281mm !important;
    margin:0 auto !important;
    padding:0 !important;
  }
  body.estimate-print-page .estimate-document-stack,
  body.estimate-print-page .estimate-document-paper{
    width:281mm !important;
    min-width:281mm !important;
    max-width:281mm !important;
  }
  body.estimate-print-page .estimate-document-paper{
    page-break-after:always !important;
    break-after:page !important;
  }
  body.estimate-print-page .estimate-document-paper:last-child{
    page-break-after:auto !important;
    break-after:auto !important;
  }
  body.estimate-print-page .estimate-document-paper-page1{
    height:194mm !important;
    min-height:194mm !important;
    max-height:194mm !important;
    overflow:hidden !important;
  }
  body.estimate-print-page .estimate-document-paper-page2{
    min-height:194mm !important;
  }
}



/* =========================================================
   ESTIMATE V26 - bottom line + list button alignment fix
   ========================================================= */

/* 리스트/조회/상세/상단버튼 우측 라인 통일 - width conflict cleaned v49 */
body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .stack{
  width:980px !important;
  max-width:980px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .stack > .row:first-child{
  width:980px !important;
  max-width:980px !important;
  padding-left:18px !important;
  padding-right:18px !important;
  box-sizing:border-box !important;
}

body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .stack > .row:first-child .actions{
  margin-left:auto !important;
  padding:0 !important;
  display:flex !important;
  justify-content:flex-end !important;
  align-items:center !important;
  gap:8px !important;
}

body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .estimate-filter-card,
body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .estimate-list{
  width:980px !important;
  max-width:980px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .estimate-filter-card{
  padding:16px !important;
  box-sizing:border-box !important;
}

body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .estimate-filter{
  width:100% !important;
  display:grid !important;
  grid-template-columns:150px 150px minmax(0,1fr) 96px !important;
  gap:10px !important;
  align-items:end !important;
}

body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .estimate-filter .field{
  min-width:0 !important;
  width:100% !important;
}

body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .estimate-filter .submit-field{
  width:96px !important;
  min-width:96px !important;
  justify-self:end !important;
}

body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .estimate-filter .submit-field .btn{
  width:96px !important;
  min-width:96px !important;
  padding-left:0 !important;
  padding-right:0 !important;
}

body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .estimate-card{
  width:980px !important;
  max-width:980px !important;
  padding:18px !important;
  grid-template-columns:minmax(0,1fr) 96px !important;
  box-sizing:border-box !important;
}

body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .estimate-actions{
  width:auto !important;
  min-width:0 !important;
  display:flex !important;
  justify-content:flex-end !important;
  align-items:center !important;
}

/* preview/view/print 하단: 견적별도사항이 짤리지 않고, 내부 하단선 없이 맨 아래 border 하나만 */
.page-estimate .estimate-document-paper{
  overflow:hidden !important;
  border:1px solid #222 !important;
}

.page-estimate .estimate-document-paper-page1{
  display:grid !important;
  grid-template-rows:auto auto auto 1fr !important;
  height:760px !important;
  min-height:760px !important;
  max-height:760px !important;
  overflow:hidden !important;
  border:0 !important;
  box-sizing:border-box !important;
}

/* 견적별도사항 + 하단 빈공간을 하나의 영역처럼 보이게 */
.page-estimate .estimate-special-terms{
  grid-row:4 !important;
  align-self:stretch !important;
  min-height:0 !important;
  height:auto !important;
  margin:0 !important;
  padding:8px 9px !important;
  border-top:1px solid #222 !important;
  border-right:0 !important;
  border-bottom:0 !important;
  border-left:0 !important;
  background:#fff !important;
  box-sizing:border-box !important;
  overflow:visible !important;
}


/* 견적별도사항 텍스트는 위쪽에 붙이고, 나머지 영역은 같은 흰 공간으로 남김 */
.page-estimate .estimate-special-title,
.page-estimate .estimate-special-line{
  display:block !important;
  line-height:1.45 !important;
}

/* 상세/미리보기 화면 높이 고정 */
body.page-estimate-view .estimate-document-paper-page1,
body.estimate-popup-body.page-estimate-view .estimate-document-paper-page1,
body.estimate-preview-popup .estimate-document-paper-page1{
  height:760px !important;
  min-height:760px !important;
  max-height:760px !important;
}

/* 출력/PDF는 A4 가로 용지 기준 */
body.estimate-print-page .estimate-document-paper-page1{
  display:grid !important;
  grid-template-rows:auto auto auto 1fr !important;
  height:200mm !important;
  min-height:200mm !important;
  max-height:200mm !important;
  overflow:hidden !important;
  border:0 !important;
}

body.estimate-print-page .estimate-special-terms{
  grid-row:4 !important;
  align-self:stretch !important;
  min-height:0 !important;
  height:auto !important;
  padding:2mm 2.4mm !important;
  border-top:1px solid #000 !important;
  border-bottom:0 !important;
  overflow:visible !important;
}

body.estimate-print-page .estimate-page-fill{
  display:none !important;
}

@media print{
  .page-estimate .estimate-document-paper{
    border:1px solid #000 !important;
    overflow:hidden !important;
  }

  body.estimate-print-page .estimate-document-paper-page1{
    display:grid !important;
    grid-template-rows:auto auto auto 1fr !important;
    height:194mm !important;
    min-height:194mm !important;
    max-height:194mm !important;
    overflow:hidden !important;
    border:0 !important;
  }

  body.estimate-print-page .estimate-special-terms{
    grid-row:4 !important;
    align-self:stretch !important;
    border-top:1px solid #000 !important;
    border-bottom:0 !important;
    min-height:0 !important;
    height:auto !important;
  }

}

@media(max-width:980px){
  body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .stack,
  body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .stack > .row:first-child,
  body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .estimate-filter-card,
  body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .estimate-list,
  body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .estimate-card{
    width:calc(100vw - 24px) !important;
    max-width:calc(100vw - 24px) !important;
  }

  body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .estimate-filter,
  body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .estimate-card{
    grid-template-columns:1fr !important;
  }

  body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .estimate-filter .submit-field,
  body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .estimate-filter .submit-field .btn,
  body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .estimate-actions{
    width:100% !important;
    min-width:0 !important;
  }
}


/* =========================================================
   ESTIMATE V27 - outer border + larger font/height
   ========================================================= */

/* 견적서 1페이지 전체를 테두리로 감싸기 */
.page-estimate .estimate-document-paper{
  border:0 !important;
  background:#fff !important;
  overflow:visible !important;
}

.page-estimate .estimate-document-paper-page1{
  border:1px solid #000 !important;
  box-sizing:border-box !important;
  background:#fff !important;
  height:790px !important;
  min-height:790px !important;
  max-height:790px !important;
  overflow:hidden !important;
}

body.page-estimate-view .estimate-document-paper-page1,
body.estimate-popup-body.page-estimate-view .estimate-document-paper-page1,
body.estimate-preview-popup .estimate-document-paper-page1{
  height:790px !important;
  min-height:790px !important;
  max-height:790px !important;
}

/* 출력/PDF는 가로 A4 안에서 테두리까지 꽉 */
body.estimate-print-page .estimate-document-paper-page1{
  border:1px solid #000 !important;
  height:198mm !important;
  min-height:198mm !important;
  max-height:198mm !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
}

/* 제목/상단 정보 크기 보정 */
.page-estimate .estimate-doc-title{
  font-size:38px !important;
  padding:16px 0 13px !important;
  letter-spacing:30px !important;
  border-bottom:2px solid #15803d !important;
}

.page-estimate .estimate-doc-top{
  grid-template-columns:minmax(0,1fr) 410px !important;
  padding:13px 14px 14px !important;
  min-height:122px !important;
}

.page-estimate .estimate-doc-intro{
  font-size:16px !important;
  line-height:1.62 !important;
  font-weight:900 !important;
}

.page-estimate .estimate-doc-intro p{
  margin:0 0 4px !important;
}

.page-estimate .estimate-company-image{
  width:390px !important;
  max-width:390px !important;
}

/* 공사원가표 폰트/행 높이 확대 */
.page-estimate .estimate-cost-table-original{
  font-size:13px !important;
}

.page-estimate .estimate-cost-table-original th,
.page-estimate .estimate-cost-table-original td{
  height:28px !important;
  padding:5px 7px !important;
  font-size:13px !important;
  line-height:1.25 !important;
}

.page-estimate .estimate-cost-table-original .cost-left-main,
.page-estimate .estimate-cost-table-original .cost-kind{
  font-size:13px !important;
  line-height:1.45 !important;
}

/* 견적별도사항이 남은 공간을 자연스럽게 채우고 전체 하단선은 페이지 테두리 1개 */
.page-estimate .estimate-special-terms{
  min-height:0 !important;
  align-self:stretch !important;
  padding:10px 11px !important;
  border-top:1px solid #000 !important;
  border-bottom:0 !important;
  font-size:13px !important;
  line-height:1.55 !important;
  font-weight:900 !important;
  overflow:visible !important;
}

.page-estimate .estimate-special-title{
  font-size:13px !important;
  margin-bottom:3px !important;
}

.page-estimate .estimate-special-line{
  font-size:13px !important;
  min-height:18px !important;
}

/* 혹시 남은 빈 영역은 숨겨서 내부 하단선 중복 방지 */
.page-estimate .estimate-page-fill{
  display:none !important;
}

/* 상세/미리보기 종이 폭은 동일 유지 */
body.page-estimate-view .estimate-document-paper,
body.estimate-popup-body.page-estimate-view .estimate-document-paper,
body.estimate-preview-popup .estimate-document-paper{
  border:0 !important;
}

/* 출력/PDF용 폰트와 높이는 A4에 맞게 약간만 조정 */
body.estimate-print-page .estimate-doc-title{
  font-size:36px !important;
  padding:13px 0 10px !important;
}

body.estimate-print-page .estimate-doc-top{
  min-height:38mm !important;
  padding:3mm 4mm !important;
  grid-template-columns:minmax(0,1fr) 100mm !important;
}

body.estimate-print-page .estimate-doc-intro{
  font-size:13.5px !important;
  line-height:1.5 !important;
}

body.estimate-print-page .estimate-company-image{
  width:96mm !important;
  max-width:96mm !important;
}

body.estimate-print-page .estimate-cost-table-original th,
body.estimate-print-page .estimate-cost-table-original td{
  height:6.8mm !important;
  padding:1.3mm 1.8mm !important;
  font-size:11px !important;
}

body.estimate-print-page .estimate-special-terms{
  padding:2.2mm 2.6mm !important;
  font-size:11px !important;
  line-height:1.42 !important;
  border-top:1px solid #000 !important;
  border-bottom:0 !important;
}

@media print{
  .page-estimate .estimate-document-paper{
    border:0 !important;
  }

  body.estimate-print-page .estimate-document-paper-page1{
    border:1px solid #000 !important;
    height:194mm !important;
    min-height:194mm !important;
    max-height:194mm !important;
    overflow:hidden !important;
    box-sizing:border-box !important;
  }

  body.estimate-print-page .estimate-special-terms{
    border-bottom:0 !important;
  }

  body.estimate-print-page .estimate-page-fill{
    display:none !important;
  }
}


/* =========================================================
   ESTIMATE V28 - bigger document font + preview/view same
   ========================================================= */

/* preview/view/print 모두 동일한 문서 폰트 기준 */
body.estimate-preview-popup .estimate-document-paper-page1,
body.page-estimate-view .estimate-document-paper-page1,
body.estimate-popup-body.page-estimate-view .estimate-document-paper-page1{
  border:1px solid #000 !important;
  height:790px !important;
  min-height:790px !important;
  max-height:790px !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
}

/* estimate_preview.php, estimate_view.php 상단 견적서 제목 */
body.estimate-preview-popup .estimate-doc-title,
body.page-estimate-view .estimate-doc-title,
body.estimate-popup-body.page-estimate-view .estimate-doc-title{
  font-size:41px !important;
  padding:17px 0 14px !important;
  letter-spacing:32px !important;
  line-height:1 !important;
}

/* estimate_preview.php, estimate_view.php 상단 정보 */
body.estimate-preview-popup .estimate-doc-top,
body.page-estimate-view .estimate-doc-top,
body.estimate-popup-body.page-estimate-view .estimate-doc-top{
  min-height:130px !important;
  padding:14px 15px 15px !important;
  grid-template-columns:minmax(0,1fr) 420px !important;
}

body.estimate-preview-popup .estimate-doc-intro,
body.page-estimate-view .estimate-doc-intro,
body.estimate-popup-body.page-estimate-view .estimate-doc-intro{
  font-size:17px !important;
  line-height:1.65 !important;
  font-weight:950 !important;
}

body.estimate-preview-popup .estimate-doc-intro p,
body.page-estimate-view .estimate-doc-intro p,
body.estimate-popup-body.page-estimate-view .estimate-doc-intro p{
  margin:0 0 5px !important;
}

body.estimate-preview-popup .estimate-company-image,
body.page-estimate-view .estimate-company-image,
body.estimate-popup-body.page-estimate-view .estimate-company-image{
  width:400px !important;
  max-width:400px !important;
}

/* estimate_preview.php, estimate_view.php 공사원가표 */
body.estimate-preview-popup .estimate-cost-table-original,
body.page-estimate-view .estimate-cost-table-original,
body.estimate-popup-body.page-estimate-view .estimate-cost-table-original{
  font-size:14px !important;
}

body.estimate-preview-popup .estimate-cost-table-original th,
body.estimate-preview-popup .estimate-cost-table-original td,
body.page-estimate-view .estimate-cost-table-original th,
body.page-estimate-view .estimate-cost-table-original td,
body.estimate-popup-body.page-estimate-view .estimate-cost-table-original th,
body.estimate-popup-body.page-estimate-view .estimate-cost-table-original td{
  height:30px !important;
  padding:6px 8px !important;
  font-size:14px !important;
  line-height:1.28 !important;
}

body.estimate-preview-popup .estimate-cost-table-original .cost-left-main,
body.estimate-preview-popup .estimate-cost-table-original .cost-kind,
body.page-estimate-view .estimate-cost-table-original .cost-left-main,
body.page-estimate-view .estimate-cost-table-original .cost-kind,
body.estimate-popup-body.page-estimate-view .estimate-cost-table-original .cost-left-main,
body.estimate-popup-body.page-estimate-view .estimate-cost-table-original .cost-kind{
  font-size:14px !important;
  line-height:1.45 !important;
}

/* estimate_preview.php, estimate_view.php 견적별도사항 */
body.estimate-preview-popup .estimate-special-terms,
body.page-estimate-view .estimate-special-terms,
body.estimate-popup-body.page-estimate-view .estimate-special-terms{
  padding:11px 12px !important;
  font-size:14px !important;
  line-height:1.6 !important;
  font-weight:950 !important;
  border-top:1px solid #000 !important;
  border-bottom:0 !important;
}

body.estimate-preview-popup .estimate-special-title,
body.estimate-preview-popup .estimate-special-line,
body.page-estimate-view .estimate-special-title,
body.page-estimate-view .estimate-special-line,
body.estimate-popup-body.page-estimate-view .estimate-special-title,
body.estimate-popup-body.page-estimate-view .estimate-special-line{
  font-size:14px !important;
  line-height:1.6 !important;
}

/* 출력/PDF도 비슷하게 조금 키우되 A4 안에 들어가도록 제한 */
body.estimate-print-page .estimate-doc-title{
  font-size:38px !important;
  padding:14px 0 11px !important;
  letter-spacing:31px !important;
}

body.estimate-print-page .estimate-doc-intro{
  font-size:14.5px !important;
  line-height:1.54 !important;
  font-weight:950 !important;
}

body.estimate-print-page .estimate-cost-table-original th,
body.estimate-print-page .estimate-cost-table-original td{
  height:7mm !important;
  padding:1.4mm 1.9mm !important;
  font-size:11.5px !important;
}

body.estimate-print-page .estimate-special-terms{
  font-size:11.5px !important;
  line-height:1.45 !important;
}

/* preview/view에서 빈 fill은 계속 숨김 */
body.estimate-preview-popup .estimate-page-fill,
body.page-estimate-view .estimate-page-fill,
body.estimate-popup-body.page-estimate-view .estimate-page-fill{
  display:none !important;
}


/* estimate remove preview buttons v29 */
.page-estimate a[href*="estimate_preview.php"],
.page-estimate button[data-estimate-preview]{
  display:none !important;
}


/* estimate form cost sheet visible + delete button + detail total v30 */

/* 이전 미리보기 버튼 제거 CSS가 라이브 미리보기 section까지 숨기는 문제 보정 */
.page-estimate .estimate-live-preview[data-estimate-preview]{
  display:grid !important;
}

/* 원가계산서 포함 중일 때 원가계산서 표가 폼 하단에 보이도록 */
.page-estimate form[data-cost-sheet-on="1"] .estimate-cost-sheet-preview[data-cost-sheet-preview]{
  display:block !important;
  visibility:visible !important;
  min-height:0 !important;
  margin-top:10px !important;
}

.page-estimate form:not([data-cost-sheet-on="1"]) .estimate-cost-sheet-preview[data-cost-sheet-preview]{
  display:none !important;
}

/* 라이브 미리보기는 견적서 작성/수정 폼에서 원가계산서/세부내역 확인용으로 유지 */
body.page-estimate-form .estimate-live-preview,
body.estimate-popup-body.page-estimate-form .estimate-live-preview{
  display:grid !important;
  gap:12px !important;
  margin-top:14px !important;
  padding:14px !important;
  border:1px solid #cfe0f6 !important;
  border-radius:18px !important;
  background:#fff !important;
}

/* 항목 삭제 버튼 폭 축소 */
body.page-estimate-form .estimate-item-row,
body.estimate-popup-body.page-estimate-form .estimate-item-row{
  grid-template-columns:260px 230px 64px 64px 108px 116px 108px 116px 106px 110px 155px 48px !important;
}

.page-estimate .estimate-row-delete-btn,
.page-estimate [data-estimate-remove-row]{
  width:46px !important;
  min-width:46px !important;
  max-width:46px !important;
  height:34px !important;
  padding:0 !important;
  font-size:12px !important;
  line-height:1 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:12px !important;
}

/* 세부내역 합계 행이 잘 보이도록 */
.page-estimate .estimate-doc-table .estimate-doc-summary td{
  font-weight:950 !important;
}

@media(max-width:980px){
  body.page-estimate-form .estimate-item-row,
  body.estimate-popup-body.page-estimate-form .estimate-item-row{
    grid-template-columns:260px 230px 64px 64px 108px 116px 108px 116px 106px 110px 155px 48px !important;
  }
}


/* estimate form top spacing fix v31 */
/* 견적별도사항/메모 영역과 품목 버튼 사이 간격 확보 */
body.page-estimate-form .estimate-item-tools,
body.estimate-popup-body.page-estimate-form .estimate-item-tools{
  margin-top:18px !important;
  margin-bottom:10px !important;
  padding-top:8px !important;
}

/* 품목 제목 라인이 위 입력영역에 붙어 보이지 않게 */
body.page-estimate-form .estimate-section-title,
body.estimate-popup-body.page-estimate-form .estimate-section-title{
  margin-top:14px !important;
  margin-bottom:8px !important;
}

/* 상단 입력 그리드와 품목 영역 사이 여백 */
body.page-estimate-form .estimate-form-grid,
body.estimate-popup-body.page-estimate-form .estimate-form-grid{
  margin-bottom:14px !important;
}

/* 메모 input 아래쪽이 버튼과 붙어 보이지 않도록 */
body.page-estimate-form .estimate-memo-field,
body.estimate-popup-body.page-estimate-form .estimate-memo-field{
  margin-bottom:10px !important;
}

/* 품목 버튼줄이 textarea 오른쪽에 너무 붙지 않게 약간 아래로 */
body.page-estimate-form .estimate-item-tools .btn,
body.estimate-popup-body.page-estimate-form .estimate-item-tools .btn{
  margin-top:2px !important;
}


/* estimate form item width + detail totals in account column v32 */

/* 품목 입력행 전체가 폼 카드 안에 들어오도록 폭 재조정 */
body.page-estimate-form .estimate-items,
body.estimate-popup-body.page-estimate-form .estimate-items{
  overflow-x:hidden !important;
  width:100% !important;
  max-width:100% !important;
}

body.page-estimate-form .estimate-item-row,
body.estimate-popup-body.page-estimate-form .estimate-item-row{
  grid-template-columns:
    minmax(180px, 1.55fr)
    minmax(160px, 1.25fr)
    56px
    56px
    92px
    96px
    92px
    96px
    94px
    minmax(76px, .65fr)
    44px !important;
  min-width:0 !important;
  width:100% !important;
  max-width:100% !important;
  gap:6px !important;
  box-sizing:border-box !important;
}

/* REPAIR 양식에서는 단일 단가 컬럼을 실제로 감추고, 빈 트랙 없이 11칸만 사용 */
body.page-estimate-form form[data-template-type="REPAIR"] .est-col-unit,
body.estimate-popup-body.page-estimate-form form[data-template-type="REPAIR"] .est-col-unit{
  display:none !important;
}

/* 비고 칸이 너무 넓어져 가로 스크롤을 만드는 것 방지 */
body.page-estimate-form .estimate-item-row input[name*="[memo]"],
body.estimate-popup-body.page-estimate-form .estimate-item-row input[name*="[memo]"]{
  min-width:0 !important;
  width:100% !important;
}

/* 삭제 버튼은 마지막 칸 안에서 작게 */
.page-estimate .estimate-row-delete-btn,
.page-estimate [data-estimate-remove-row]{
  width:42px !important;
  min-width:42px !important;
  max-width:42px !important;
  height:32px !important;
  padding:0 !important;
  font-size:12px !important;
  border-radius:10px !important;
}

/* 세부내역서 합계 행 금액은 계 컬럼 위치가 눈에 띄게 */
.page-estimate .estimate-doc-table .estimate-doc-summary td:nth-last-child(2),
.page-estimate .estimate-doc-table .estimate-doc-grand td:nth-last-child(2){
  text-align:right !important;
  font-weight:950 !important;
}

@media(max-width:980px){
  body.page-estimate-form .estimate-items,
  body.estimate-popup-body.page-estimate-form .estimate-items{
    overflow-x:auto !important;
  }

  body.page-estimate-form .estimate-item-row,
  body.estimate-popup-body.page-estimate-form .estimate-item-row{
    min-width:1120px !important;
    grid-template-columns:190px 165px 56px 56px 92px 96px 92px 96px 94px 82px 44px !important;
  }
}


/* estimate list status change + detail summary duplicate amount v33 */
.page-estimate .estimate-actions-with-status{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:8px !important;
  flex-wrap:wrap !important;
}

.page-estimate .estimate-status-form{
  display:flex !important;
  align-items:center !important;
  gap:5px !important;
  margin:0 !important;
  padding:0 !important;
}

.page-estimate .estimate-status-select{
  width:102px !important;
  min-width:102px !important;
  height:34px !important;
  padding:0 24px 0 10px !important;
  border-radius:12px !important;
  font-size:12px !important;
  font-weight:850 !important;
}

.page-estimate .estimate-status-submit{
  min-width:46px !important;
  height:34px !important;
  padding:0 10px !important;
  border-radius:12px !important;
  font-size:12px !important;
}

.page-estimate .estimate-card{
  grid-template-columns:minmax(0,1fr) auto !important;
}

.page-estimate .estimate-actions-with-status .btn.primary{
  height:34px !important;
  min-width:54px !important;
  padding:0 12px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}

/* 세부내역 합계행: 재료/노무 금액 컬럼과 계 컬럼 양쪽 표시 */
.page-estimate .estimate-doc-table .estimate-doc-summary .num{
  text-align:right !important;
  font-weight:950 !important;
}

@media(max-width:980px){
  .page-estimate .estimate-actions-with-status{
    justify-content:flex-start !important;
  }
}


/* estimate site search + confirm workflow fix v34 */
.page-estimate .estimate-site-field{
  display:grid !important;
  grid-template-rows:auto auto auto !important;
  gap:5px !important;
}

.page-estimate .estimate-site-search{
  height:36px !important;
  border-radius:13px !important;
  font-size:13px !important;
}

.page-estimate .estimate-site-select{
  height:36px !important;
  border-radius:13px !important;
  font-size:13px !important;
}

/* 업체검색 입력이 추가되어도 상단 폼이 깨지지 않게 */
body.page-estimate-form .estimate-form-grid-reordered,
body.estimate-popup-body.page-estimate-form .estimate-form-grid-reordered{
  align-items:start !important;
}

.page-estimate .notice.danger{
  border-color:#ff9b9b !important;
  background:#fff0f0 !important;
  color:#c20000 !important;
}


/* estimate site select usability + date width fix v35 */

/* 견적일 칸이 2026-07-01 전체가 보이도록 넓힘 */
body.page-estimate-form .estimate-form-grid-reordered,
body.estimate-popup-body.page-estimate-form .estimate-form-grid-reordered{
  grid-template-columns:300px 140px 160px 110px 120px 180px 180px minmax(180px,1fr) !important;
}

/* 날짜 input 자체도 넓게 */
body.page-estimate-form input[name="estimate_date"],
body.estimate-popup-body.page-estimate-form input[name="estimate_date"]{
  min-width:156px !important;
  width:156px !important;
  padding-right:12px !important;
}

/* 대상처 검색/선택을 분리해서 자동완성처럼 보이지 않게 */
.page-estimate .estimate-site-field{
  gap:6px !important;
}

.page-estimate .estimate-site-search,
.page-estimate .estimate-site-select{
  min-width:180px !important;
  width:100% !important;
  height:38px !important;
}

.page-estimate .estimate-site-help{
  display:block !important;
  font-size:11px !important;
  color:#5f718b !important;
  line-height:1.25 !important;
  padding-left:3px !important;
  white-space:normal !important;
}

/* 대상처 칸이 높아져도 옆 칸과 너무 붙지 않게 */
body.page-estimate-form .estimate-site-field,
body.estimate-popup-body.page-estimate-form .estimate-site-field{
  align-self:start !important;
}

@media(max-width:980px){
  body.page-estimate-form .estimate-form-grid-reordered,
  body.estimate-popup-body.page-estimate-form .estimate-form-grid-reordered{
    grid-template-columns:300px 140px 160px 110px 120px 180px 180px minmax(180px,1fr) !important;
  }
}


/* estimate site dropdown + no-cost detail placement v36 */

/* 견적 제목/공사명 칸 줄이고 전체 상단 배치 재조정 */
body.page-estimate-form .estimate-form-grid-reordered,
body.estimate-popup-body.page-estimate-form .estimate-form-grid-reordered{
  grid-template-columns:250px 140px 160px 110px 120px 210px 180px minmax(180px,1fr) !important;
  align-items:start !important;
}


body.page-estimate-form .estimate-title-field input,
body.estimate-popup-body.page-estimate-form .estimate-title-field input{
  max-width:250px !important;
}

/* 업체 검색은 input 밑에 결과 목록이 뜨는 방식 */
.page-estimate .estimate-site-field{
  position:relative !important;
  display:grid !important;
  grid-template-rows:auto auto auto !important;
  gap:5px !important;
  z-index:20 !important;
}

.page-estimate .estimate-site-search{
  min-width:210px !important;
  width:100% !important;
  height:38px !important;
  border-radius:13px !important;
}

.page-estimate .estimate-site-results{
  position:absolute !important;
  top:62px !important;
  left:0 !important;
  right:0 !important;
  max-height:230px !important;
  overflow:auto !important;
  background:#fff !important;
  border:1px solid #cfe0f6 !important;
  border-radius:14px !important;
  box-shadow:0 18px 35px rgba(20,40,70,.18) !important;
  padding:6px !important;
  z-index:999 !important;
}

.page-estimate .estimate-site-results[hidden]{
  display:none !important;
}

.page-estimate .estimate-site-option{
  display:block !important;
  width:100% !important;
  min-height:34px !important;
  border:0 !important;
  border-radius:10px !important;
  background:#fff !important;
  padding:7px 9px !important;
  text-align:left !important;
  font-size:13px !important;
  font-weight:850 !important;
  color:#061d46 !important;
  cursor:pointer !important;
}

.page-estimate .estimate-site-option:hover,
.page-estimate .estimate-site-option:focus{
  background:#eef6ff !important;
  outline:none !important;
}

.page-estimate .estimate-site-help{
  font-size:11px !important;
  color:#5f718b !important;
}

/* 원가계산서 미포함일 때 폼 하단에서 견적세부내역이 원가계산서 위치로 이동 */
.page-estimate form[data-cost-sheet-on="0"] .estimate-cost-sheet-preview[data-cost-sheet-preview]{
  display:block !important;
  visibility:visible !important;
}

.page-estimate form[data-cost-sheet-on="0"] .estimate-cost-sheet-preview.estimate-inline-detail-wrap{
  margin-top:10px !important;
  padding:0 !important;
  border:0 !important;
  background:#fff !important;
}

.page-estimate form[data-cost-sheet-on="0"] .estimate-preview-table[data-preview-items]{
  display:none !important;
}

.page-estimate form[data-cost-sheet-on="1"] .estimate-preview-table[data-preview-items]{
  display:block !important;
}

/* 문서 출력/상세: 원가계산서 미포함이면 세부내역서를 첫 페이지 원가계산서 자리로 */
.page-estimate .estimate-document-stack.no-cost-sheet .estimate-document-paper-page1{
  height:auto !important;
  min-height:760px !important;
  max-height:none !important;
  display:block !important;
}

.page-estimate .estimate-inline-detail{
  padding:0 !important;
  margin:0 !important;
  border-top:1px solid #000 !important;
}

.page-estimate .estimate-inline-detail .estimate-detail-title{
  padding:8px 0 !important;
  border-bottom:1px solid #000 !important;
}

.page-estimate .estimate-inline-detail .estimate-doc-table{
  border-left:0 !important;
  border-right:0 !important;
}

.page-estimate .estimate-inline-detail .estimate-doc-table th:first-child,
.page-estimate .estimate-inline-detail .estimate-doc-table td:first-child{
  border-left:0 !important;
}

.page-estimate .estimate-inline-detail .estimate-doc-table th:last-child,
.page-estimate .estimate-inline-detail .estimate-doc-table td:last-child{
  border-right:0 !important;
}

@media print{
  body.estimate-print-page .estimate-document-stack.no-cost-sheet .estimate-document-paper-page1{
    height:auto !important;
    min-height:194mm !important;
    max-height:none !important;
    display:block !important;
  }
}


/* estimate no-cost portrait + bottom terms + site/recipient overlap fix v37 */

/* 대상처/수신 겹침 방지: 원가계산서 미포함 기본 배치 */
body.page-estimate-form .estimate-form-grid-reordered,
body.estimate-popup-body.page-estimate-form .estimate-form-grid-reordered{
  grid-template-columns:240px 136px 156px 110px 230px 200px minmax(180px,1fr) !important;
  gap:10px !important;
  align-items:start !important;
}


body.page-estimate-form .estimate-title-field input,
body.estimate-popup-body.page-estimate-form .estimate-title-field input{
  max-width:240px !important;
}

body.page-estimate-form .estimate-cost-dependent,
body.estimate-popup-body.page-estimate-form .estimate-cost-dependent{
  grid-column:5 / span 1 !important;
}

/* 기본: 간접노무비 숨김 상태라 대상처는 5번, 수신은 6번 */
body.page-estimate-form .estimate-site-field,
body.estimate-popup-body.page-estimate-form .estimate-site-field{
  grid-column:5 / span 1 !important;
  width:230px !important;
  max-width:230px !important;
  min-width:0 !important;
  z-index:50 !important;
}

body.page-estimate-form .estimate-recipient-field,
body.estimate-popup-body.page-estimate-form .estimate-recipient-field{
  grid-column:6 / span 1 !important;
  width:200px !important;
  max-width:200px !important;
  min-width:0 !important;
}

/* 원가계산서 포함일 때는 간접노무비가 5번에 나오므로 대상처/수신을 한 칸씩 뒤로 */


.page-estimate .estimate-site-search{
  width:100% !important;
  min-width:0 !important;
}

.page-estimate .estimate-site-results{
  width:230px !important;
  min-width:230px !important;
  max-width:230px !important;
  right:auto !important;
}

/* 원가계산서 미포함 문서는 세로 견적서 기준 */
.page-estimate .estimate-document-stack.no-cost-sheet{
  width:794px !important;
  max-width:794px !important;
  min-width:794px !important;
}

.page-estimate .estimate-document-stack.no-cost-sheet .estimate-document-paper{
  width:794px !important;
  max-width:794px !important;
  min-width:794px !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet{
  display:grid !important;
  grid-template-rows:auto auto 1fr auto !important;
  width:794px !important;
  height:1123px !important;
  min-height:1123px !important;
  max-height:none !important;
  overflow:hidden !important;
  border:1px solid #000 !important;
  box-sizing:border-box !important;
}

/* 세로 견적서 상단은 폭에 맞게 축소 */
.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-doc-title{
  font-size:36px !important;
  letter-spacing:24px !important;
  padding:14px 0 11px !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-doc-top{
  grid-template-columns:minmax(0,1fr) 250px !important;
  gap:10px !important;
  min-height:120px !important;
  padding:11px 12px !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-doc-intro{
  font-size:14px !important;
  line-height:1.5 !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-company-image{
  width:245px !important;
  max-width:245px !important;
}

/* 세로 견적서: 세부내역은 가운데, 견적별도사항은 맨 하단 */
.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-inline-detail{
  grid-row:3 !important;
  overflow:hidden !important;
  border-top:1px solid #000 !important;
  align-self:stretch !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-inline-detail .estimate-doc-table{
  font-size:10.5px !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-inline-detail .estimate-doc-table th,
.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-inline-detail .estimate-doc-table td{
  height:22px !important;
  padding:3px 5px !important;
  font-size:10.5px !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-special-terms{
  grid-row:4 !important;
  align-self:end !important;
  min-height:95px !important;
  padding:9px 10px !important;
  border-top:1px solid #000 !important;
  border-bottom:0 !important;
  font-size:12px !important;
  line-height:1.45 !important;
}

/* 출력/PDF: 원가계산서 미포함은 세로 A4 요청 */
@page estimateNoCostPortrait{
  size:A4 portrait;
  margin:8mm;
}

@page estimateCostLandscape{
  size:A4 landscape;
  margin:8mm;
}

body.estimate-print-page.estimate-print-no-cost .estimate-document-paper{
  page:estimateNoCostPortrait;
}

body.estimate-print-page.estimate-print-has-cost .estimate-document-paper{
  page:estimateCostLandscape;
}

body.estimate-print-page.estimate-print-no-cost .estimate-print-wrap,
body.estimate-print-page.estimate-print-no-cost .estimate-document-stack.no-cost-sheet,
body.estimate-print-page.estimate-print-no-cost .estimate-document-stack.no-cost-sheet .estimate-document-paper{
  width:194mm !important;
  min-width:194mm !important;
  max-width:194mm !important;
}

body.estimate-print-page.estimate-print-no-cost .estimate-document-paper-page1.no-cost-sheet{
  width:194mm !important;
  height:277mm !important;
  min-height:277mm !important;
  max-height:277mm !important;
  display:grid !important;
  grid-template-rows:auto auto 1fr auto !important;
}

body.estimate-print-page.estimate-print-no-cost .estimate-document-paper-page1.no-cost-sheet .estimate-doc-title{
  font-size:30px !important;
  padding:9px 0 8px !important;
  letter-spacing:20px !important;
}

body.estimate-print-page.estimate-print-no-cost .estimate-document-paper-page1.no-cost-sheet .estimate-doc-top{
  grid-template-columns:minmax(0,1fr) 62mm !important;
  min-height:32mm !important;
  padding:3mm !important;
}

body.estimate-print-page.estimate-print-no-cost .estimate-document-paper-page1.no-cost-sheet .estimate-doc-intro{
  font-size:11.2px !important;
  line-height:1.45 !important;
}

body.estimate-print-page.estimate-print-no-cost .estimate-document-paper-page1.no-cost-sheet .estimate-company-image{
  width:60mm !important;
  max-width:60mm !important;
}

body.estimate-print-page.estimate-print-no-cost .estimate-document-paper-page1.no-cost-sheet .estimate-special-terms{
  min-height:24mm !important;
  font-size:10.5px !important;
  line-height:1.35 !important;
  padding:2mm 2.4mm !important;
}

@media print{
  body.estimate-print-page.estimate-print-no-cost .estimate-document-paper{
    page:estimateNoCostPortrait !important;
  }

  body.estimate-print-page.estimate-print-no-cost .estimate-print-wrap,
  body.estimate-print-page.estimate-print-no-cost .estimate-document-stack.no-cost-sheet,
  body.estimate-print-page.estimate-print-no-cost .estimate-document-stack.no-cost-sheet .estimate-document-paper{
    width:194mm !important;
    min-width:194mm !important;
    max-width:194mm !important;
  }

  body.estimate-print-page.estimate-print-no-cost .estimate-document-paper-page1.no-cost-sheet{
    width:194mm !important;
    height:277mm !important;
    min-height:277mm !important;
    max-height:277mm !important;
    overflow:hidden !important;
    display:grid !important;
    grid-template-rows:auto auto 1fr auto !important;
  }
}

@media(max-width:980px){
  body.page-estimate-form .estimate-form-grid-reordered,
  body.estimate-popup-body.page-estimate-form .estimate-form-grid-reordered{
    grid-template-columns:240px 136px 156px 110px 230px 200px minmax(180px,1fr) !important;
  }
}


/* estimate cost-on form overlap + no-cost portrait bottom fit v38 */

/* 폼 상단을 8칸 기준으로 다시 정리해서 원가계산서 포함 시 대상처/수신 겹침 방지 */
body.page-estimate-form .estimate-form-grid-reordered,
body.estimate-popup-body.page-estimate-form .estimate-form-grid-reordered{
  grid-template-columns:230px 132px 156px 108px 128px 225px 205px minmax(120px,1fr) !important;
  column-gap:12px !important;
  row-gap:20px !important;
  align-items:start !important;
}

body.page-estimate-form .estimate-title-field,
body.estimate-popup-body.page-estimate-form .estimate-title-field{
  grid-column:1 / span 1 !important;
}

body.page-estimate-form .estimate-title-field input,
body.estimate-popup-body.page-estimate-form .estimate-title-field input{
  max-width:230px !important;
}

/* 원가계산서 미포함: 대상처 5번 / 수신 6번 */
body.page-estimate-form form[data-cost-sheet-on="0"] .estimate-site-field,
body.estimate-popup-body.page-estimate-form form[data-cost-sheet-on="0"] .estimate-site-field,
body.page-estimate-form form:not([data-cost-sheet-on="1"]) .estimate-site-field,
body.estimate-popup-body.page-estimate-form form:not([data-cost-sheet-on="1"]) .estimate-site-field{
  grid-column:5 / span 1 !important;
}

body.page-estimate-form form[data-cost-sheet-on="0"] .estimate-recipient-field,
body.estimate-popup-body.page-estimate-form form[data-cost-sheet-on="0"] .estimate-recipient-field,
body.page-estimate-form form:not([data-cost-sheet-on="1"]) .estimate-recipient-field,
body.estimate-popup-body.page-estimate-form form:not([data-cost-sheet-on="1"]) .estimate-recipient-field{
  grid-column:6 / span 1 !important;
}

/* 원가계산서 포함: 간접노무비 5번 / 대상처 6번 / 수신 7번 */
body.page-estimate-form form[data-cost-sheet-on="1"] .estimate-cost-dependent,
body.estimate-popup-body.page-estimate-form form[data-cost-sheet-on="1"] .estimate-cost-dependent{
  grid-column:5 / span 1 !important;
}

body.page-estimate-form form[data-cost-sheet-on="1"] .estimate-site-field,
body.estimate-popup-body.page-estimate-form form[data-cost-sheet-on="1"] .estimate-site-field{
  grid-column:6 / span 1 !important;
}

body.page-estimate-form form[data-cost-sheet-on="1"] .estimate-recipient-field,
body.estimate-popup-body.page-estimate-form form[data-cost-sheet-on="1"] .estimate-recipient-field{
  grid-column:7 / span 1 !important;
}

body.page-estimate-form .estimate-site-field,
body.estimate-popup-body.page-estimate-form .estimate-site-field{
  width:225px !important;
  max-width:225px !important;
  min-width:0 !important;
  position:relative !important;
  z-index:80 !important;
}

body.page-estimate-form .estimate-recipient-field,
body.estimate-popup-body.page-estimate-form .estimate-recipient-field{
  width:205px !important;
  max-width:205px !important;
  min-width:0 !important;
}

.page-estimate .estimate-site-results{
  width:225px !important;
  min-width:225px !important;
  max-width:225px !important;
  top:60px !important;
  left:0 !important;
  right:auto !important;
  z-index:9999 !important;
}

body.page-estimate-form .estimate-special-terms-field,
body.estimate-popup-body.page-estimate-form .estimate-special-terms-field{
  grid-column:1 / span 4 !important;
}

body.page-estimate-form .estimate-memo-field,
body.estimate-popup-body.page-estimate-form .estimate-memo-field{
  grid-column:5 / span 2 !important;
  align-self:end !important;
}

/* 세로 견적서: 세부내역 아래 빈 공간도 문서 하단까지 맞춤 */
.page-estimate .estimate-document-paper-page1.no-cost-sheet{
  display:grid !important;
  grid-template-rows:auto auto minmax(0,1fr) auto !important;
  height:1123px !important;
  min-height:1123px !important;
  max-height:1123px !important;
  overflow:hidden !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-inline-detail{
  display:flex !important;
  flex-direction:column !important;
  min-height:0 !important;
  align-self:stretch !important;
  overflow:hidden !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-inline-detail .estimate-doc-table{
  flex:0 0 auto !important;
}

.page-estimate .estimate-nocost-detail-fill{
  flex:1 1 auto !important;
  min-height:0 !important;
  border-top:0 !important;
  background:#fff !important;
}

/* 견적별도사항은 항상 세로 견적서 맨 하단 */
.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-special-terms{
  align-self:stretch !important;
  min-height:100px !important;
  margin-top:auto !important;
}

/* 화면/프린트 세로 견적서 하단 높이 동일하게 */
body.estimate-print-page.estimate-print-no-cost .estimate-document-paper-page1.no-cost-sheet{
  display:grid !important;
  grid-template-rows:auto auto minmax(0,1fr) auto !important;
  height:277mm !important;
  min-height:277mm !important;
  max-height:277mm !important;
  overflow:hidden !important;
}

body.estimate-print-page.estimate-print-no-cost .estimate-document-paper-page1.no-cost-sheet .estimate-inline-detail{
  display:flex !important;
  flex-direction:column !important;
  min-height:0 !important;
}

body.estimate-print-page.estimate-print-no-cost .estimate-nocost-detail-fill{
  flex:1 1 auto !important;
}

body.estimate-print-page.estimate-print-no-cost .estimate-document-paper-page1.no-cost-sheet .estimate-special-terms{
  min-height:25mm !important;
  align-self:stretch !important;
}

@media print{
  body.estimate-print-page.estimate-print-no-cost .estimate-document-paper-page1.no-cost-sheet{
    display:grid !important;
    grid-template-rows:auto auto minmax(0,1fr) auto !important;
    height:277mm !important;
    min-height:277mm !important;
    max-height:277mm !important;
    overflow:hidden !important;
  }
}

@media(max-width:980px){
  body.page-estimate-form .estimate-form-grid-reordered,
  body.estimate-popup-body.page-estimate-form .estimate-form-grid-reordered{
    grid-template-columns:230px 132px 156px 108px 128px 225px 205px minmax(120px,1fr) !important;
  }
}


/* estimate v39 - form overlap, item border, no-cost gap fix */

/* 상단 폼: 미포함/포함 모두 대상처 도움말이 아래줄과 겹치지 않게 행 간격 확대 */
body.page-estimate-form .estimate-form-grid-reordered,
body.estimate-popup-body.page-estimate-form .estimate-form-grid-reordered{
  grid-template-columns:230px 132px 156px 108px 132px 235px 215px minmax(120px,1fr) !important;
  column-gap:12px !important;
  row-gap:34px !important;
  align-items:start !important;
}

/* 원가계산서 미포함: 대상처 / 수신 분리 */
body.page-estimate-form form[data-cost-sheet-on="0"] .estimate-site-field,
body.estimate-popup-body.page-estimate-form form[data-cost-sheet-on="0"] .estimate-site-field,
body.page-estimate-form form:not([data-cost-sheet-on="1"]) .estimate-site-field,
body.estimate-popup-body.page-estimate-form form:not([data-cost-sheet-on="1"]) .estimate-site-field{
  grid-column:5 / span 1 !important;
  width:235px !important;
  max-width:235px !important;
}

body.page-estimate-form form[data-cost-sheet-on="0"] .estimate-recipient-field,
body.estimate-popup-body.page-estimate-form form[data-cost-sheet-on="0"] .estimate-recipient-field,
body.page-estimate-form form:not([data-cost-sheet-on="1"]) .estimate-recipient-field,
body.estimate-popup-body.page-estimate-form form:not([data-cost-sheet-on="1"]) .estimate-recipient-field{
  grid-column:6 / span 1 !important;
  width:215px !important;
  max-width:215px !important;
}

/* 원가계산서 포함: 간접노무비 / 대상처 / 수신 분리 */
body.page-estimate-form form[data-cost-sheet-on="1"] .estimate-cost-dependent,
body.estimate-popup-body.page-estimate-form form[data-cost-sheet-on="1"] .estimate-cost-dependent{
  grid-column:5 / span 1 !important;
  width:132px !important;
  max-width:132px !important;
}

body.page-estimate-form form[data-cost-sheet-on="1"] .estimate-site-field,
body.estimate-popup-body.page-estimate-form form[data-cost-sheet-on="1"] .estimate-site-field{
  grid-column:6 / span 1 !important;
  width:235px !important;
  max-width:235px !important;
}

body.page-estimate-form form[data-cost-sheet-on="1"] .estimate-recipient-field,
body.estimate-popup-body.page-estimate-form form[data-cost-sheet-on="1"] .estimate-recipient-field{
  grid-column:7 / span 1 !important;
  width:215px !important;
  max-width:215px !important;
}

.page-estimate .estimate-site-help{
  display:block !important;
  max-width:235px !important;
  margin-top:4px !important;
  font-size:11px !important;
  line-height:1.25 !important;
  white-space:normal !important;
  word-break:keep-all !important;
}

/* 대상처 검색 결과가 열려도 옆/아래 항목을 덮되, 레이아웃은 밀지 않음 */
.page-estimate .estimate-site-results{
  top:64px !important;
  width:235px !important;
  min-width:235px !important;
  max-width:235px !important;
}

/* 견적별도사항/메모는 대상처 도움말 아래로 충분히 떨어지게 */
body.page-estimate-form .estimate-special-terms-field,
body.estimate-popup-body.page-estimate-form .estimate-special-terms-field{
  grid-column:1 / span 4 !important;
  margin-top:6px !important;
}

body.page-estimate-form .estimate-memo-field,
body.estimate-popup-body.page-estimate-form .estimate-memo-field{
  grid-column:5 / span 2 !important;
  margin-top:6px !important;
}

/* 품목/세부내역 입력 영역에 외곽 테두리 부여 */
body.page-estimate-form .estimate-items,
body.estimate-popup-body.page-estimate-form .estimate-items{
  border:1px solid #cfe0f6 !important;
  border-radius:18px !important;
  background:#fff !important;
  padding:12px !important;
  box-sizing:border-box !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.6) !important;
}

body.page-estimate-form .estimate-item-header,
body.estimate-popup-body.page-estimate-form .estimate-item-header{
  padding-bottom:4px !important;
  border-bottom:1px solid #e4edf9 !important;
  margin-bottom:8px !important;
}

/* 원가계산서 미포함 세로 견적서: 합계와 견적별도사항 사이 공백 제거 */
.page-estimate .estimate-document-paper-page1.no-cost-sheet{
  display:block !important;
  height:auto !important;
  min-height:1123px !important;
  max-height:none !important;
  overflow:visible !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-inline-detail{
  display:block !important;
  border-top:1px solid #000 !important;
  overflow:visible !important;
}

.page-estimate .estimate-nocost-detail-fill{
  display:none !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-special-terms{
  display:block !important;
  margin:0 !important;
  min-height:120px !important;
  border-top:1px solid #000 !important;
  border-bottom:0 !important;
  padding:12px 12px !important;
}

/* 세로 견적서 본문을 더 크게 */
.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-doc-title{
  font-size:40px !important;
  padding:17px 0 14px !important;
  letter-spacing:26px !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-doc-top{
  min-height:142px !important;
  padding:14px 14px !important;
  grid-template-columns:minmax(0,1fr) 280px !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-doc-intro{
  font-size:15.5px !important;
  line-height:1.62 !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-company-image{
  width:275px !important;
  max-width:275px !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-inline-detail .estimate-detail-title{
  font-size:19px !important;
  padding:10px 0 !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-inline-detail .estimate-doc-table{
  font-size:12px !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-inline-detail .estimate-doc-table th,
.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-inline-detail .estimate-doc-table td{
  height:27px !important;
  padding:5px 6px !important;
  font-size:12px !important;
  line-height:1.28 !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-special-terms,
.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-special-title,
.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-special-line{
  font-size:13.5px !important;
  line-height:1.55 !important;
}

/* 출력/PDF 원가계산서 미포함도 합계 바로 아래 견적별도사항 */
body.estimate-print-page.estimate-print-no-cost .estimate-document-paper-page1.no-cost-sheet{
  display:block !important;
  height:auto !important;
  min-height:277mm !important;
  max-height:none !important;
  overflow:visible !important;
}

body.estimate-print-page.estimate-print-no-cost .estimate-document-paper-page1.no-cost-sheet .estimate-inline-detail{
  display:block !important;
  overflow:visible !important;
}

body.estimate-print-page.estimate-print-no-cost .estimate-nocost-detail-fill{
  display:none !important;
}

body.estimate-print-page.estimate-print-no-cost .estimate-document-paper-page1.no-cost-sheet .estimate-special-terms{
  margin:0 !important;
  min-height:26mm !important;
  border-top:1px solid #000 !important;
}

@media print{
  body.estimate-print-page.estimate-print-no-cost .estimate-document-paper-page1.no-cost-sheet{
    display:block !important;
    height:auto !important;
    min-height:277mm !important;
    max-height:none !important;
    overflow:visible !important;
  }

  body.estimate-print-page.estimate-print-no-cost .estimate-nocost-detail-fill{
    display:none !important;
  }

  body.estimate-print-page.estimate-print-no-cost .estimate-document-paper-page1.no-cost-sheet .estimate-special-terms{
    margin:0 !important;
    border-top:1px solid #000 !important;
  }
}


/* estimate v40 - target/recipient align final fix */

/* 상단 폼 한 줄 정렬: 대상처/수신 겹침 제거 */
body.page-estimate-form .estimate-form-grid-reordered,
body.estimate-popup-body.page-estimate-form .estimate-form-grid-reordered{
  grid-template-columns:220px 128px 150px 108px 190px 190px minmax(120px,1fr) !important;
  column-gap:12px !important;
  row-gap:44px !important;
  align-items:start !important;
}

/* 기본 미포함: 제목 / 번호 / 일자 / 상태 / 대상처 / 수신 */
body.page-estimate-form form:not([data-cost-sheet-on="1"]) .estimate-title-field,
body.estimate-popup-body.page-estimate-form form:not([data-cost-sheet-on="1"]) .estimate-title-field,
body.page-estimate-form form[data-cost-sheet-on="0"] .estimate-title-field,
body.estimate-popup-body.page-estimate-form form[data-cost-sheet-on="0"] .estimate-title-field{
  grid-column:1 / span 1 !important;
}

body.page-estimate-form form:not([data-cost-sheet-on="1"]) .estimate-site-field,
body.estimate-popup-body.page-estimate-form form:not([data-cost-sheet-on="1"]) .estimate-site-field,
body.page-estimate-form form[data-cost-sheet-on="0"] .estimate-site-field,
body.estimate-popup-body.page-estimate-form form[data-cost-sheet-on="0"] .estimate-site-field{
  grid-column:5 / span 1 !important;
  width:190px !important;
  max-width:190px !important;
  min-width:0 !important;
  align-self:start !important;
  margin-top:0 !important;
  transform:translateY(-2px) !important;
}

body.page-estimate-form form:not([data-cost-sheet-on="1"]) .estimate-recipient-field,
body.estimate-popup-body.page-estimate-form form:not([data-cost-sheet-on="1"]) .estimate-recipient-field,
body.page-estimate-form form[data-cost-sheet-on="0"] .estimate-recipient-field,
body.estimate-popup-body.page-estimate-form form[data-cost-sheet-on="0"] .estimate-recipient-field{
  grid-column:6 / span 1 !important;
  width:190px !important;
  max-width:190px !important;
  min-width:0 !important;
  align-self:start !important;
  margin-top:0 !important;
}

/* 포함일 때만 8칸 그리드: 간접노무비 / 대상처 / 수신 순서 */
body.page-estimate-form form[data-cost-sheet-on="1"],
body.estimate-popup-body.page-estimate-form form[data-cost-sheet-on="1"]{
  --estimate-form-top-cols:220px 128px 150px 108px 124px 190px 190px minmax(120px,1fr);
}

body.page-estimate-form form[data-cost-sheet-on="1"] .estimate-form-grid-reordered,
body.estimate-popup-body.page-estimate-form form[data-cost-sheet-on="1"] .estimate-form-grid-reordered{
  grid-template-columns:var(--estimate-form-top-cols) !important;
}

body.page-estimate-form form[data-cost-sheet-on="1"] .estimate-cost-dependent,
body.estimate-popup-body.page-estimate-form form[data-cost-sheet-on="1"] .estimate-cost-dependent{
  grid-column:5 / span 1 !important;
  width:124px !important;
  max-width:124px !important;
  min-width:0 !important;
}

body.page-estimate-form form[data-cost-sheet-on="1"] .estimate-site-field,
body.estimate-popup-body.page-estimate-form form[data-cost-sheet-on="1"] .estimate-site-field{
  grid-column:6 / span 1 !important;
  width:190px !important;
  max-width:190px !important;
  min-width:0 !important;
  align-self:start !important;
  margin-top:0 !important;
  transform:translateY(-2px) !important;
}

body.page-estimate-form form[data-cost-sheet-on="1"] .estimate-recipient-field,
body.estimate-popup-body.page-estimate-form form[data-cost-sheet-on="1"] .estimate-recipient-field{
  grid-column:7 / span 1 !important;
  width:190px !important;
  max-width:190px !important;
  min-width:0 !important;
  align-self:start !important;
  margin-top:0 !important;
}

/* 대상처 input 자체 폭을 칸 안에 강제 */
.page-estimate .estimate-site-field{
  position:relative !important;
  z-index:80 !important;
  display:block !important;
}

.page-estimate .estimate-site-field label{
  display:block !important;
  margin-bottom:5px !important;
}

.page-estimate .estimate-site-search{
  width:190px !important;
  min-width:0 !important;
  max-width:190px !important;
  height:36px !important;
  box-sizing:border-box !important;
  margin:0 !important;
}

/* 선택됨 안내문은 레이아웃을 밀거나 수신칸과 겹치지 않도록 input 아래 작은 글씨로 고정 */
.page-estimate .estimate-site-help{
  display:block !important;
  position:absolute !important;
  left:2px !important;
  top:58px !important;
  width:190px !important;
  max-width:190px !important;
  margin:0 !important;
  padding:0 !important;
  font-size:10.5px !important;
  line-height:1.2 !important;
  color:#5f718b !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  pointer-events:none !important;
}

/* 검색결과 박스도 대상처 칸 폭에 맞춤 */
.page-estimate .estimate-site-results{
  top:58px !important;
  left:0 !important;
  right:auto !important;
  width:190px !important;
  min-width:190px !important;
  max-width:190px !important;
  z-index:9999 !important;
}

/* 수신 input도 정확히 190px */
.page-estimate .estimate-recipient-field input[name="recipient"]{
  width:190px !important;
  max-width:190px !important;
  box-sizing:border-box !important;
}

/* 견적별도사항/메모는 안내문 밑으로 충분히 내려오게 */
body.page-estimate-form .estimate-special-terms-field,
body.estimate-popup-body.page-estimate-form .estimate-special-terms-field{
  grid-column:1 / span 4 !important;
  margin-top:12px !important;
}

body.page-estimate-form .estimate-memo-field,
body.estimate-popup-body.page-estimate-form .estimate-memo-field{
  grid-column:5 / span 2 !important;
  margin-top:12px !important;
}

@media(max-width:980px){
  body.page-estimate-form .estimate-form-grid-reordered,
  body.estimate-popup-body.page-estimate-form .estimate-form-grid-reordered{
    grid-template-columns:220px 128px 150px 108px 190px 190px minmax(120px,1fr) !important;
  }
}


/* estimate delete button in detail v41 */
.page-estimate .estimate-delete-form{
  display:inline-flex !important;
  margin:0 !important;
  padding:0 !important;
}

.page-estimate .estimate-delete-form .btn{
  height:40px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}

/* estimate patch: summary row column lines + right action + title pill v1 */
.page-estimate .estimate-doc-table .estimate-doc-summary-material td,
.page-estimate .estimate-doc-table .estimate-doc-summary-labor td{
  border-left:1px solid #222 !important;
  border-right:1px solid #222 !important;
}

body.page-estimate-view .estimate-view-actions,
body.estimate-popup-body.page-estimate-view .estimate-view-actions{
  display:flex !important;
  justify-content:flex-end !important;
  align-items:center !important;
  width:100% !important;
  margin-top:12px !important;
}
body.page-estimate-view .estimate-view-actions form,
body.estimate-popup-body.page-estimate-view .estimate-view-actions form{
  display:flex !important;
  justify-content:flex-end !important;
  margin:0 !important;
}

body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .estimate-page-heading{
  display:flex !important;
  align-items:center !important;
}
body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .estimate-title-pill{
  display:inline-flex !important;
  align-items:center !important;
  gap:10px !important;
  margin:0 !important;
  padding:8px 12px !important;
  border:1px solid #a9c9ff !important;
  border-radius:999px !important;
  background:linear-gradient(180deg,#ffffff 0%,#eef5ff 100%) !important;
  box-shadow:0 10px 24px rgba(47,109,231,.12) !important;
  color:#061d46 !important;
  font-size:20px !important;
  line-height:1 !important;
  font-weight:950 !important;
  letter-spacing:-.5px !important;
}
body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .estimate-title-pill span{
  display:inline-block !important;
  font:inherit !important;
}
body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .estimate-title-pill b{
  display:inline-flex !important;
  align-items:center !important;
  min-height:30px !important;
  padding:0 12px !important;
  border:1px solid #2f6de7 !important;
  border-radius:999px !important;
  background:linear-gradient(180deg,#eef5ff 0%,#dceaff 100%) !important;
  color:#0749b5 !important;
  font-size:17px !important;
  font-weight:950 !important;
  white-space:nowrap !important;
}

/* estimate company header image size up v42 */
.page-estimate .estimate-doc-top{
  grid-template-columns:minmax(0,1fr) 455px !important;
  gap:10px !important;
}

.page-estimate .estimate-company-image,
body.estimate-preview-popup .estimate-company-image,
body.page-estimate-view .estimate-company-image,
body.estimate-popup-body.page-estimate-view .estimate-company-image{
  width:440px !important;
  max-width:440px !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-doc-top{
  grid-template-columns:minmax(0,1fr) 360px !important;
  gap:8px !important;
  min-height:130px !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-company-image,
body.estimate-preview-popup .estimate-document-paper-page1.no-cost-sheet .estimate-company-image,
body.page-estimate-view .estimate-document-paper-page1.no-cost-sheet .estimate-company-image,
body.estimate-popup-body.page-estimate-view .estimate-document-paper-page1.no-cost-sheet .estimate-company-image{
  width:355px !important;
  max-width:355px !important;
}

body.estimate-print-page .estimate-doc-top{
  grid-template-columns:minmax(0,1fr) 420px !important;
  gap:10px !important;
}

body.estimate-print-page .estimate-company-image{
  width:405px !important;
  max-width:405px !important;
}

body.estimate-print-page.estimate-print-no-cost .estimate-document-paper-page1.no-cost-sheet .estimate-doc-top{
  grid-template-columns:minmax(0,1fr) 82mm !important;
  gap:2mm !important;
  min-height:34mm !important;
}

body.estimate-print-page.estimate-print-no-cost .estimate-document-paper-page1.no-cost-sheet .estimate-company-image{
  width:80mm !important;
  max-width:80mm !important;
}


/* estimate company header image tune down v44 */
.page-estimate .estimate-doc-top{
  grid-template-columns:minmax(0,1fr) 402px !important;
  gap:10px !important;
  align-items:center !important;
}

.page-estimate .estimate-company-image,
body.estimate-preview-popup .estimate-company-image,
body.page-estimate-view .estimate-company-image,
body.estimate-popup-body.page-estimate-view .estimate-company-image{
  display:block !important;
  height:auto !important;
  width:388px !important;
  max-width:388px !important;
}

body.estimate-preview-popup .estimate-doc-top,
body.page-estimate-view .estimate-doc-top,
body.estimate-popup-body.page-estimate-view .estimate-doc-top{
  min-height:124px !important;
  padding:12px 14px 13px !important;
  grid-template-columns:minmax(0,1fr) 395px !important;
  gap:12px !important;
  align-items:center !important;
}

body.estimate-preview-popup .estimate-doc-intro,
body.page-estimate-view .estimate-doc-intro,
body.estimate-popup-body.page-estimate-view .estimate-doc-intro{
  font-size:16px !important;
  line-height:1.58 !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-doc-top,
body.estimate-preview-popup .estimate-document-paper-page1.no-cost-sheet .estimate-doc-top,
body.page-estimate-view .estimate-document-paper-page1.no-cost-sheet .estimate-doc-top,
body.estimate-popup-body.page-estimate-view .estimate-document-paper-page1.no-cost-sheet .estimate-doc-top{
  grid-template-columns:minmax(0,1fr) 315px !important;
  gap:8px !important;
  min-height:118px !important;
  align-items:center !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-company-image,
body.estimate-preview-popup .estimate-document-paper-page1.no-cost-sheet .estimate-company-image,
body.page-estimate-view .estimate-document-paper-page1.no-cost-sheet .estimate-company-image,
body.estimate-popup-body.page-estimate-view .estimate-document-paper-page1.no-cost-sheet .estimate-company-image{
  width:305px !important;
  max-width:305px !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-doc-intro,
body.estimate-preview-popup .estimate-document-paper-page1.no-cost-sheet .estimate-doc-intro,
body.page-estimate-view .estimate-document-paper-page1.no-cost-sheet .estimate-doc-intro,
body.estimate-popup-body.page-estimate-view .estimate-document-paper-page1.no-cost-sheet .estimate-doc-intro{
  font-size:13.5px !important;
  line-height:1.48 !important;
}

.page-estimate .estimate-document-paper-page1.no-cost-sheet .estimate-doc-total-line,
body.estimate-preview-popup .estimate-document-paper-page1.no-cost-sheet .estimate-doc-total-line,
body.page-estimate-view .estimate-document-paper-page1.no-cost-sheet .estimate-doc-total-line,
body.estimate-popup-body.page-estimate-view .estimate-document-paper-page1.no-cost-sheet .estimate-doc-total-line{
  font-size:inherit !important;
}

body.estimate-print-page .estimate-doc-top{
  grid-template-columns:minmax(0,1fr) 98mm !important;
  gap:3mm !important;
  align-items:center !important;
}

body.estimate-print-page .estimate-company-image{
  width:94mm !important;
  max-width:94mm !important;
  height:auto !important;
}

body.estimate-print-page.estimate-print-no-cost .estimate-document-paper-page1.no-cost-sheet .estimate-doc-top{
  grid-template-columns:minmax(0,1fr) 82mm !important;
  gap:2mm !important;
  min-height:33mm !important;
  align-items:center !important;
}

body.estimate-print-page.estimate-print-no-cost .estimate-document-paper-page1.no-cost-sheet .estimate-company-image{
  width:78mm !important;
  max-width:78mm !important;
}

/* user/settings access control UI v1 */
.page-user-list .row h2,
.page-user-create .row h2,
.page-user-edit .row h2,
.page-user-view .row h2,
.page-settings .settings-title-row h2{
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:8px 14px;
  border:1px solid #a9c9ff;
  border-radius:999px;
  background:linear-gradient(180deg,#ffffff 0%,#eef5ff 100%);
  box-shadow:0 10px 24px rgba(47,109,231,.12);
  color:#061d46;
  font-size:22px;
  line-height:1;
  font-weight:950;
  letter-spacing:-.5px;
}

.page-user-list .card,
.page-user-create .card,
.page-user-edit .card,
.page-user-view .card,
.page-settings .settings-card{
  border:1px solid #d7eadf;
  border-radius:18px;
  box-shadow:0 16px 36px rgba(15,75,45,.08);
}

.user-role-badge.role-super_admin{ background:#eef5ff; color:#0749b5; border-color:#a9c9ff; }
.user-role-badge.role-office{ background:#fff7ed; color:#9a3412; border-color:#fed7aa; }
.user-role-badge.role-staff{ background:#ecfdf5; color:#047857; border-color:#a7f3d0; }

.page-user-list .table th,
.page-user-list .table td{
  white-space:nowrap;
  vertical-align:middle;
}

.page-user-create .user-system-section,
.page-user-edit .user-system-section{
  margin-top:4px;
}

.settings-menu-access-wrap{
  max-width:980px;
  margin:0 auto;
}
.settings-title-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.settings-table-wrap{
  overflow:auto;
}
.settings-permission-table th,
.settings-permission-table td{
  white-space:nowrap;
  vertical-align:middle;
}
.settings-permission-table td.center,
.settings-permission-table th.center{
  text-align:center;
}
.settings-permission-table tr.is-disabled{
  opacity:.55;
}
.settings-check{
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  font-size:12px;
  font-weight:850;
  color:#475569;
}
.settings-check input{
  width:18px;
  height:18px;
  accent-color:#15803d;
}
.settings-check input:disabled{
  opacity:.55;
}
.settings-permission-table .code{
  margin-top:2px;
  font-size:11px;
  color:#64748b;
}

/* estimate activity/deleted list v49 */
.page-estimate-deleted .estimate-filter-deleted{
  grid-template-columns:minmax(280px,1fr) 90px !important;
}
.page-estimate-activity .estimate-filter-activity{
  grid-template-columns:150px minmax(280px,1fr) 90px !important;
}
.estimate-deleted-card{
  border-color:#fecaca !important;
  background:linear-gradient(180deg,#fff 0%,#fff7f7 100%) !important;
}
.estimate-activity-card .table-wrap{
  width:100%;
  overflow:auto;
}
.estimate-activity-table{
  width:100%;
  border-collapse:collapse;
}
.estimate-activity-table th,
.estimate-activity-table td{
  padding:10px 9px;
  border-bottom:1px solid #e5e7eb;
  vertical-align:middle;
  font-size:13px;
}
.estimate-activity-table th{
  background:#f8fafc;
  font-weight:900;
  color:#0f172a;
  white-space:nowrap;
}
.estimate-activity-table .nowrap,
.nowrap{
  white-space:nowrap;
}
@media (max-width:760px){
  .page-estimate-deleted .estimate-filter-deleted,
  .page-estimate-activity .estimate-filter-activity{
    grid-template-columns:1fr !important;
  }
  .estimate-activity-table th,
  .estimate-activity-table td{
    font-size:12px;
    padding:8px 7px;
  }
}

/* user management polish v2 */
.user-page-wrap{
  width:min(980px, calc(100% - 28px));
  max-width:980px;
  margin:0 auto;
}
.user-title-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:4px 0 12px;
}
.user-title-row h2{
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:8px 14px;
  border:1px solid #a9c9ff;
  border-radius:999px;
  background:linear-gradient(180deg,#fff 0%,#eef5ff 100%);
  box-shadow:0 10px 24px rgba(47,109,231,.12);
  color:#061d46;
  font-size:22px;
  line-height:1;
  font-weight:950;
  letter-spacing:-.5px;
  margin:0;
}
.user-title-row p{
  margin:7px 0 0;
  color:#64748b;
  font-size:13px;
  font-weight:800;
}
.user-summary-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:10px;
}
.user-summary-card{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:14px 16px;
  border:1px solid #cfe2ff;
  border-radius:18px;
  background:rgba(255,255,255,.86);
  box-shadow:0 14px 32px rgba(37,99,235,.08);
}
.user-summary-card span{
  color:#64748b;
  font-size:12px;
  font-weight:900;
}
.user-summary-card b{
  color:#061d46;
  font-size:24px;
  line-height:1;
  font-weight:950;
}
.user-filter-card,
.user-list-card,
.user-form-card,
.user-profile-card{
  border:1px solid #cfe2ff !important;
  border-radius:18px !important;
  background:rgba(255,255,255,.92) !important;
  box-shadow:0 18px 44px rgba(15,23,42,.08) !important;
}
.user-filter-form{
  display:grid;
  grid-template-columns:minmax(0,1fr) 100px auto;
  gap:10px;
  align-items:end;
}
.user-filter-form label,
.user-form-grid label{
  display:block;
  margin:0 0 7px;
  color:#233b6c;
  font-size:12px;
  font-weight:950;
}
.user-table-wrap{
  border:1px solid #e6edf7;
  border-radius:16px;
  overflow:auto;
}
.user-table{
  margin:0;
  min-width:840px;
}
.user-table thead th{
  background:#f2f7ff;
  color:#334155;
  font-size:12px;
  font-weight:950;
}
.user-table tbody tr{
  transition:background .12s ease, transform .12s ease;
}
.user-table tbody tr:hover{
  background:#f8fbff;
}
.user-name-link{
  display:flex;
  flex-direction:column;
  gap:4px;
  text-decoration:none;
  color:#061d46;
}
.user-name-link b{
  font-size:15px;
  font-weight:950;
}
.user-name-link span{
  color:#64748b;
  font-size:12px;
  font-weight:800;
}
.user-org-cell{
  display:flex;
  flex-direction:column;
  gap:3px;
}
.user-org-cell b,
.user-org-cell span{
  min-height:14px;
}
.user-form{
  gap:14px;
}
.user-form-card .card-header{
  border-bottom:1px solid #e6edf7;
  padding-bottom:10px;
  margin-bottom:2px;
}
.user-form-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px 16px;
}
.user-form-grid .full{
  grid-column:1 / -1;
}
.user-addr{
  display:grid;
  gap:10px;
}
.user-addr .addr-row{
  display:flex;
  align-items:center;
  gap:8px;
}
.user-addr .addr-postcode{
  max-width:140px;
}
.user-system-card{
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%) !important;
}
.user-form-actions{
  justify-content:flex-end;
  padding:2px 0 12px;
}
.user-profile-head{
  display:flex;
  align-items:center;
  gap:16px;
}
.user-avatar{
  width:64px;
  height:64px;
  border-radius:22px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,#2f6de7 0%,#7bb3ff 100%);
  color:#fff;
  font-size:28px;
  font-weight:950;
  box-shadow:0 14px 30px rgba(47,109,231,.22);
  flex:0 0 auto;
}
.user-profile-main{
  min-width:0;
  flex:1 1 auto;
}
.user-profile-main h3{
  margin:0 0 7px;
  font-size:24px;
  line-height:1.1;
  color:#061d46;
  font-weight:950;
}
.user-profile-sub{
  display:flex;
  flex-wrap:wrap;
  gap:6px 10px;
  color:#64748b;
  font-size:13px;
  font-weight:850;
}
.user-profile-badges{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  justify-content:flex-end;
}
.user-kv .kv-item{
  border:1px solid #edf2fb;
  border-radius:14px;
  background:#fff;
  padding:12px 14px;
}
.user-role-badge.role-super_admin{ background:#eef5ff !important; color:#0749b5 !important; border-color:#a9c9ff !important; }
.user-role-badge.role-office{ background:#fff7ed !important; color:#9a3412 !important; border-color:#fed7aa !important; }
.user-role-badge.role-staff{ background:#ecfdf5 !important; color:#047857 !important; border-color:#a7f3d0 !important; }
@media (max-width:760px){
  .user-page-wrap{ width:calc(100% - 20px); }
  .user-title-row{ align-items:flex-start; flex-direction:column; }
  .user-title-row .actions{ width:100%; justify-content:flex-start; }
  .user-summary-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .user-filter-form{ grid-template-columns:1fr; }
  .user-form-grid{ grid-template-columns:1fr; }
  .user-profile-head{ align-items:flex-start; flex-direction:column; }
  .user-profile-badges{ justify-content:flex-start; }
}

/* material management phase1 */
.page-material .material-wrap{max-width:980px;margin:0 auto;padding-bottom:40px}.page-material .material-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px 0}.page-material .material-title-row p{margin:8px 0 0;color:#5b6b86;font-weight:800}.page-material .actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.page-material .inline{display:inline}.material-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.material-summary-card{padding:15px 16px;border:1px solid #cfe0ff;border-radius:18px;background:linear-gradient(180deg,#fff,#f5f9ff);box-shadow:0 14px 32px rgba(31,75,150,.08)}.material-summary-card span{display:block;color:#51627f;font-weight:850;font-size:13px}.material-summary-card b{display:block;margin-top:8px;font-size:28px;color:#061d46}.material-summary-card.warn b{color:#dc2626}.material-summary-card.muted b{color:#64748b}.material-filter-card,.material-list-card,.material-view-card{border:1px solid #cfe0ff!important;border-radius:20px!important;background:rgba(255,255,255,.92)!important;box-shadow:0 18px 48px rgba(15,42,95,.08)!important}.material-filter{display:grid;grid-template-columns:145px 170px 140px minmax(240px,1fr) 86px;gap:10px;align-items:end}.material-filter.material-filter-simple{grid-template-columns:minmax(300px,1fr) 86px 86px}.material-filter label span,.material-form label span{display:block;margin:0 0 6px;color:#334155;font-weight:900;font-size:13px}.material-table-wrap{overflow-x:auto}.material-table{width:100%;border-collapse:separate;border-spacing:0}.material-table th{padding:13px 12px;background:#f1f6ff;color:#52627b;text-align:left;font-size:13px;font-weight:950;border-bottom:1px solid #d9e6fb}.material-table td{padding:13px 12px;border-bottom:1px solid #eef2f7;vertical-align:middle;font-weight:800;color:#0f254a}.material-table tr:hover td{background:#f8fbff}.material-table .num{text-align:right;white-space:nowrap}.material-name a,.material-name b{color:#03245c;font-weight:950;text-decoration:none}.material-name em{display:block;margin-top:4px;color:#2563eb;font-style:normal;font-size:12px;font-weight:900}.material-badge{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border:1px solid #bfd7ff;border-radius:999px;background:#f5f9ff;color:#174ea6;font-size:12px;font-weight:950;white-space:nowrap}.material-badge.ok{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.material-badge.warn{border-color:#fecaca;background:#fff1f2;color:#b91c1c}.material-badge.muted{border-color:#e2e8f0;background:#f8fafc;color:#64748b}.material-form{padding:0!important;overflow:hidden}.material-form-section{padding:20px;border-bottom:1px solid #e8eef8}.material-form-section h3{margin:0 0 14px;color:#061d46;font-size:17px;font-weight:950}.material-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.material-form textarea.input{width:100%;min-height:110px;resize:vertical}.material-form-actions{padding:18px 20px;justify-content:flex-end}.material-view-head{display:flex;justify-content:space-between;gap:12px;padding:20px;border-bottom:1px solid #e8eef8}.material-view-head strong{display:block;font-size:24px;color:#061d46}.material-view-head span{display:block;margin-top:6px;color:#2563eb;font-weight:900}.material-info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-bottom:1px solid #e8eef8}.material-info-grid div{padding:16px;border-right:1px solid #e8eef8;border-bottom:1px solid #e8eef8}.material-info-grid div:nth-child(4n){border-right:0}.material-info-grid span,.material-memo span{display:block;color:#64748b;font-size:12px;font-weight:950}.material-info-grid b{display:block;margin-top:8px;color:#061d46;font-size:16px}.material-memo{padding:18px}.material-memo p{margin:8px 0 0;line-height:1.6;font-weight:800;color:#0f254a}.pager{display:flex;gap:6px;justify-content:center;margin-top:14px}.pager a{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;border:1px solid #cfe0ff;border-radius:10px;background:#fff;text-decoration:none;font-weight:950;color:#174ea6}.pager a.active{background:#2f6de7;color:#fff}
@media(max-width:760px){.page-material .material-title-row{display:block}.page-material .material-title-row .actions{margin-top:12px}.material-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.material-filter,.material-filter.material-filter-simple,.material-form-grid,.material-info-grid{grid-template-columns:1fr}.material-info-grid div,.material-info-grid div:nth-child(4n){border-right:0}.material-table th,.material-table td{white-space:nowrap}}


/* material list title/table alignment v2 */
.page-material .material-title-pill{
  display:inline-flex !important;
  align-items:center !important;
  gap:10px !important;
  margin:0 !important;
  padding:8px 12px !important;
  border:1px solid #a9c9ff !important;
  border-radius:999px !important;
  background:linear-gradient(180deg,#ffffff 0%,#eef5ff 100%) !important;
  box-shadow:0 10px 24px rgba(47,109,231,.12) !important;
  color:#061d46 !important;
  font-size:20px !important;
  line-height:1 !important;
  font-weight:950 !important;
  letter-spacing:-.5px !important;
}
.page-material .material-title-pill span{
  display:inline-block !important;
  font:inherit !important;
}
.page-material .material-title-pill b{
  display:inline-flex !important;
  align-items:center !important;
  min-height:30px !important;
  padding:0 12px !important;
  border:1px solid #2f6de7 !important;
  border-radius:999px !important;
  background:linear-gradient(180deg,#eef5ff 0%,#dceaff 100%) !important;
  color:#0749b5 !important;
  font-size:17px !important;
  font-weight:950 !important;
  white-space:nowrap !important;
}
.page-material .material-list-card{
  overflow:hidden !important;
}
.page-material .material-table{
  table-layout:fixed !important;
  width:100% !important;
}
.page-material .material-table .mat-col-name{width:20% !important;}
.page-material .material-table .mat-col-category{width:12% !important;}
.page-material .material-table .mat-col-price{width:11% !important;}
.page-material .material-table .mat-col-status{width:8% !important;}
.page-material .material-table .mat-col-actions{width:8% !important;}
.page-material .material-table th,
.page-material .material-table td{
  box-sizing:border-box !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
.page-material .material-table th.num,
.page-material .material-table td.num{
  text-align:right !important;
}
.page-material .material-table th.center,
.page-material .material-table td.center{
  text-align:center !important;
}
.page-material .material-row-actions .btn.tiny{
  min-width:42px !important;
  height:36px !important;
  padding:0 10px !important;
  margin:0 2px !important;
  vertical-align:middle !important;
}
.page-material .material-name a{
  display:block !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
.page-material .material-name em{
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
@media(max-width:760px){
  .page-material .material-title-pill{font-size:18px !important;}
  .page-material .material-title-pill b{font-size:15px !important;min-height:28px !important;}
  .page-material .material-table{table-layout:auto !important;}
  .page-material .material-table th,
  .page-material .material-table td{white-space:nowrap !important;}
}


/* material list remove status column / no horizontal scroll v3 */
.page-material .material-table-wrap{
  overflow-x:visible !important;
  width:100% !important;
}

.page-material .material-table{
  min-width:0 !important;
  width:100% !important;
  table-layout:fixed !important;
}

.page-material .material-table .mat-col-name{width:19% !important;}
.page-material .material-table .mat-col-category{width:15% !important;}
.page-material .material-table .mat-col-spec{width:16% !important;}
.page-material .material-table .mat-col-unit{width:7% !important;}
.page-material .material-table .mat-col-stock{width:9% !important;}
.page-material .material-table .mat-col-min{width:9% !important;}
.page-material .material-table .mat-col-price{width:13% !important;}
.page-material .material-table .mat-col-actions{width:12% !important;}

.page-material .material-table th,
.page-material .material-table td{
  padding-left:10px !important;
  padding-right:10px !important;
}

.page-material .material-table td.material-row-actions{
  display:table-cell !important;
  text-align:center !important;
  white-space:nowrap !important;
}

.page-material .material-row-actions .btn.tiny{
  min-width:40px !important;
  height:34px !important;
  padding:0 9px !important;
  margin:0 1px !important;
}

@media(max-width:760px){
  .page-material .material-table-wrap{
    overflow-x:auto !important;
  }
  .page-material .material-table{
    min-width:760px !important;
    table-layout:auto !important;
  }
}


/* material stock phase2 */
.page-material .material-stock-form{
  padding:20px !important;
}
.page-material .material-stock-form .material-form-grid{
  margin-bottom:14px !important;
}
.page-material .material-stock-memo{
  display:block !important;
  margin-top:12px !important;
}
.page-material .material-stock-memo span{
  display:block !important;
  margin:0 0 6px !important;
  color:#334155 !important;
  font-weight:900 !important;
  font-size:13px !important;
}
.page-material .material-stock-plus{
  color:#166534 !important;
  font-weight:950 !important;
}
.page-material .material-stock-minus{
  color:#b91c1c !important;
  font-weight:950 !important;
}
.page-material .material-filter-stock{
  grid-template-columns:150px minmax(320px,1fr) 86px 86px !important;
}
.page-material .material-stock-table th,
.page-material .material-stock-table td{
  white-space:normal !important;
}
.page-material .material-stock-table td.num,
.page-material .material-stock-table th.num{
  white-space:nowrap !important;
}
.page-material .btn.success{
  border-color:#bbf7d0 !important;
  background:#f0fdf4 !important;
  color:#166534 !important;
}
.page-material .btn.success:hover{
  background:#dcfce7 !important;
}
@media(max-width:760px){
  .page-material .material-filter-stock{
    grid-template-columns:1fr !important;
  }
  .page-material .material-stock-table{
    min-width:900px !important;
  }
}


/* material list simplified columns v4 */
.page-material .material-table .mat-col-name{width:23% !important;}
.page-material .material-table .mat-col-maker{width:17% !important;}
.page-material .material-table .mat-col-spec{width:19% !important;}
.page-material .material-table .mat-col-stock{width:12% !important;}
.page-material .material-table .mat-col-price{width:14% !important;}
.page-material .material-table .mat-col-actions{width:15% !important;}

.page-material .material-table td.material-row-actions{
  text-align:center !important;
  white-space:nowrap !important;
  overflow:visible !important;
}

.page-material .material-row-actions .btn.tiny{
  min-width:40px !important;
  height:34px !important;
  padding:0 8px !important;
  margin:0 1px !important;
}

.page-material .material-table th,
.page-material .material-table td{
  vertical-align:middle !important;
}

@media(max-width:760px){
  .page-material .material-table{
    min-width:720px !important;
  }
}


/* estimate material picker v1 */
.page-estimate .estimate-material-picker{
  margin:10px 0 12px !important;
  padding:14px !important;
  border:1px solid #cfe0ff !important;
  border-radius:18px !important;
  background:linear-gradient(180deg,#ffffff 0%,#f7fbff 100%) !important;
  box-shadow:0 14px 34px rgba(15,42,95,.08) !important;
}

.page-estimate .estimate-material-picker[hidden]{
  display:none !important;
}

.page-estimate .estimate-material-picker-head{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:12px !important;
  margin-bottom:10px !important;
}

.page-estimate .estimate-material-picker-head strong{
  display:block !important;
  color:#061d46 !important;
  font-size:16px !important;
  font-weight:950 !important;
}

.page-estimate .estimate-material-picker-head span{
  display:block !important;
  margin-top:4px !important;
  color:#64748b !important;
  font-size:13px !important;
  font-weight:800 !important;
}

.page-estimate .estimate-material-search-line{
  margin-bottom:10px !important;
}

.page-estimate .estimate-material-results{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:8px !important;
  max-height:260px !important;
  overflow:auto !important;
}

.page-estimate .estimate-material-result{
  width:100% !important;
  padding:11px 12px !important;
  border:1px solid #d6e4ff !important;
  border-radius:14px !important;
  background:#fff !important;
  text-align:left !important;
  cursor:pointer !important;
  box-shadow:0 8px 18px rgba(15,42,95,.05) !important;
}

.page-estimate .estimate-material-result:hover{
  border-color:#2f6de7 !important;
  background:#f5f9ff !important;
}

.page-estimate .estimate-material-result strong{
  display:block !important;
  color:#061d46 !important;
  font-size:14px !important;
  font-weight:950 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}

.page-estimate .estimate-material-result span,
.page-estimate .estimate-material-result em{
  display:block !important;
  margin-top:4px !important;
  color:#64748b !important;
  font-size:12px !important;
  font-style:normal !important;
  font-weight:800 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}

.page-estimate .estimate-material-result em{
  color:#0749b5 !important;
  font-weight:950 !important;
}

@media(max-width:760px){
  .page-estimate .estimate-material-results{
    grid-template-columns:1fr !important;
  }
}


/* work diary phase1 */
.page-work-diary .work-diary-wrap{
  max-width:980px;
  margin:0 auto;
  padding-bottom:40px;
}
.page-work-diary .work-diary-title-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:18px 0;
}
.page-work-diary .work-diary-title-row p{
  margin:8px 0 0;
  color:#5b6b86;
  font-weight:800;
}
.page-work-diary .actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.page-work-diary .inline{
  display:inline;
}
.page-work-diary .work-diary-title-pill{
  display:inline-flex !important;
  align-items:center !important;
  gap:10px !important;
  margin:0 !important;
  padding:8px 12px !important;
  border:1px solid #a9c9ff !important;
  border-radius:999px !important;
  background:linear-gradient(180deg,#ffffff 0%,#eef5ff 100%) !important;
  box-shadow:0 10px 24px rgba(47,109,231,.12) !important;
  color:#061d46 !important;
  font-size:20px !important;
  line-height:1 !important;
  font-weight:950 !important;
  letter-spacing:-.5px !important;
}
.page-work-diary .work-diary-title-pill span{
  display:inline-block !important;
  font:inherit !important;
}
.page-work-diary .work-diary-title-pill b{
  display:inline-flex !important;
  align-items:center !important;
  min-height:30px !important;
  padding:0 12px !important;
  border:1px solid #2f6de7 !important;
  border-radius:999px !important;
  background:linear-gradient(180deg,#eef5ff 0%,#dceaff 100%) !important;
  color:#0749b5 !important;
  font-size:17px !important;
  font-weight:950 !important;
  white-space:nowrap !important;
}
.work-diary-filter-card,
.work-diary-list-card,
.work-diary-view-card,
.work-diary-linked-card,
.work-diary-form{
  border:1px solid #cfe0ff !important;
  border-radius:20px !important;
  background:rgba(255,255,255,.92) !important;
  box-shadow:0 18px 48px rgba(15,42,95,.08) !important;
}
.work-diary-filter{
  display:grid;
  grid-template-columns:150px 150px 140px minmax(260px,1fr) 86px;
  gap:10px;
  align-items:end;
}
.work-diary-filter.work-diary-filter-simple{
  grid-template-columns:minmax(300px,1fr) 86px 86px;
}
.work-diary-filter label span,
.work-diary-form label span{
  display:block;
  margin:0 0 6px;
  color:#334155;
  font-weight:900;
  font-size:13px;
}
.work-diary-table-wrap{
  overflow-x:visible;
  width:100%;
}
.work-diary-table{
  width:100%;
  min-width:0;
  table-layout:fixed;
  border-collapse:separate;
  border-spacing:0;
}
.work-diary-table th{
  padding:13px 10px;
  background:#f1f6ff;
  color:#52627b;
  text-align:left;
  font-size:13px;
  font-weight:950;
  border-bottom:1px solid #d9e6fb;
}
.work-diary-table td{
  padding:13px 10px;
  border-bottom:1px solid #eef2f7;
  vertical-align:middle;
  font-weight:800;
  color:#0f254a;
  overflow:hidden;
  text-overflow:ellipsis;
}
.work-diary-table tr:hover td{
  background:#f8fbff;
}
.work-diary-table .center,
.work-diary-table th.center,
.work-diary-table td.center{
  text-align:center;
}
.work-diary-table .wd-col-date{width:12%;}
.work-diary-table .wd-col-type{width:12%;}
.work-diary-table .wd-col-title{width:24%;}
.work-diary-table .wd-col-site{width:16%;}
.work-diary-table .wd-col-link{width:13%;}
.work-diary-table .wd-col-status{width:8%;}
.work-diary-table .wd-col-user{width:8%;}
.work-diary-table .wd-col-actions{width:7%;}
.work-diary-title-cell a,
.work-diary-title-cell b{
  color:#03245c;
  font-weight:950;
}
.work-diary-title-cell em{
  display:block;
  margin-top:4px;
  color:#2563eb;
  font-style:normal;
  font-size:12px;
  font-weight:900;
}
.work-diary-badge,
.work-diary-mini,
.work-diary-status{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 9px;
  border:1px solid #bfd7ff;
  border-radius:999px;
  background:#f5f9ff;
  color:#174ea6;
  font-size:12px;
  font-weight:950;
  white-space:nowrap;
}
.work-diary-mini{
  margin:1px 2px;
  min-height:22px;
  padding:0 8px;
  border-color:#e2e8f0;
  background:#f8fafc;
  color:#475569;
}
.work-diary-status.success{border-color:#bbf7d0;background:#f0fdf4;color:#166534;}
.work-diary-status.warn{border-color:#fed7aa;background:#fff7ed;color:#c2410c;}
.work-diary-status.muted{border-color:#e2e8f0;background:#f8fafc;color:#64748b;}
.work-diary-status.primary{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8;}
.work-diary-row-actions{
  text-align:center;
  white-space:nowrap;
  overflow:visible !important;
}
.work-diary-row-actions .btn.tiny{
  min-width:40px;
  height:34px;
  padding:0 8px;
  margin:0 1px;
}
.work-diary-form{
  padding:0 !important;
  overflow:hidden;
}
.work-diary-form-section{
  padding:20px;
  border-bottom:1px solid #e8eef8;
}
.work-diary-form-section h3{
  margin:0 0 14px;
  color:#061d46;
  font-size:17px;
  font-weight:950;
}
.work-diary-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.work-diary-form textarea.input{
  width:100%;
  resize:vertical;
}
.work-diary-form-section > label{
  display:block;
  margin-bottom:14px;
}
.work-diary-checks{
  display:flex;
  align-items:center;
  gap:14px;
  min-height:46px;
  padding:0 6px;
}
.work-diary-checks label{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-weight:900;
  color:#0f254a;
}
.work-diary-form-actions{
  padding:18px 20px;
  justify-content:flex-end;
}
.work-diary-view-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:20px;
  border-bottom:1px solid #e8eef8;
}
.work-diary-view-head strong{
  display:block;
  font-size:24px;
  color:#061d46;
}
.work-diary-view-head span{
  display:block;
  margin-top:6px;
  color:#2563eb;
  font-weight:900;
}
.work-diary-info-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
  border-bottom:1px solid #e8eef8;
}
.work-diary-info-grid div{
  padding:16px;
  border-right:1px solid #e8eef8;
  border-bottom:1px solid #e8eef8;
}
.work-diary-info-grid div:nth-child(4n){
  border-right:0;
}
.work-diary-info-grid span,
.work-diary-content-grid span{
  display:block;
  color:#64748b;
  font-size:12px;
  font-weight:950;
}
.work-diary-info-grid b{
  display:block;
  margin-top:8px;
  color:#061d46;
  font-size:15px;
  word-break:break-all;
}
.work-diary-content-grid{
  display:grid;
  grid-template-columns:1fr;
}
.work-diary-content-grid > div{
  padding:18px 20px;
  border-bottom:1px solid #e8eef8;
}
.work-diary-content-grid p{
  margin:8px 0 0;
  line-height:1.65;
  font-weight:800;
  color:#0f254a;
  white-space:normal;
}
.work-diary-linked-card .notice{
  margin:14px;
}

@media(max-width:760px){
  .page-work-diary .work-diary-title-row{
    display:block;
  }
  .page-work-diary .work-diary-title-row .actions{
    margin-top:12px;
  }
  .work-diary-filter,
  .work-diary-filter.work-diary-filter-simple,
  .work-diary-form-grid,
  .work-diary-info-grid{
    grid-template-columns:1fr;
  }
  .work-diary-info-grid div,
  .work-diary-info-grid div:nth-child(4n){
    border-right:0;
  }
  .work-diary-table-wrap{
    overflow-x:auto;
  }
  .work-diary-table{
    min-width:860px;
    table-layout:auto;
  }
}


/* work diary daily item structure v2 */
.page-work-diary .work-diary-filter-daily{
  grid-template-columns:160px minmax(360px,1fr) 86px !important;
}
.page-work-diary .work-diary-table .wd-col-title{width:24% !important;}
.page-work-diary .work-diary-table .wd-col-summary{width:22% !important;}
.page-work-diary .work-diary-table .wd-col-sites{width:22% !important;}
.page-work-diary .work-diary-table .wd-col-date{width:12% !important;}
.page-work-diary .work-diary-table .wd-col-status{width:8% !important;}
.page-work-diary .work-diary-table .wd-col-user{width:7% !important;}
.page-work-diary .work-diary-table .wd-col-actions{width:5% !important;}

.page-work-diary .work-diary-form-grid-daily{
  grid-template-columns:170px 150px minmax(260px,1fr) minmax(220px,1fr) !important;
}
.page-work-diary .work-diary-wide-label{
  display:block !important;
  margin-top:14px !important;
}
.page-work-diary .work-diary-section-head{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  margin-bottom:12px !important;
}
.page-work-diary .work-diary-section-head h3{
  margin:0 !important;
}
.page-work-diary .work-diary-item-list{
  display:grid !important;
  gap:14px !important;
}
.page-work-diary .work-diary-item-card{
  border:1px solid #d7e5fb !important;
  border-radius:18px !important;
  background:#fbfdff !important;
  overflow:hidden !important;
}
.page-work-diary .work-diary-item-head{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  padding:12px 14px !important;
  border-bottom:1px solid #e6eefb !important;
  background:#f3f7ff !important;
}
.page-work-diary .work-diary-item-head strong{
  color:#061d46 !important;
  font-size:15px !important;
  font-weight:950 !important;
}
.page-work-diary .work-diary-item-grid{
  display:grid !important;
  grid-template-columns:150px minmax(220px,1fr) 130px minmax(260px,1.2fr) !important;
  gap:12px !important;
  padding:14px !important;
}
.page-work-diary .work-diary-item-wide{
  grid-column:1 / -1 !important;
}
.page-work-diary .work-diary-item-view-list{
  display:grid !important;
  gap:14px !important;
  padding:14px !important;
}
.page-work-diary .work-diary-item-view-card{
  border:1px solid #d7e5fb !important;
  border-radius:18px !important;
  background:#fff !important;
  overflow:hidden !important;
}
.page-work-diary .work-diary-item-view-head{
  display:flex !important;
  justify-content:space-between !important;
  align-items:flex-start !important;
  gap:12px !important;
  padding:14px 16px !important;
  border-bottom:1px solid #e6eefb !important;
  background:#f8fbff !important;
}
.page-work-diary .work-diary-item-view-head strong{
  display:block !important;
  margin-top:8px !important;
  color:#061d46 !important;
  font-size:18px !important;
  font-weight:950 !important;
}
.page-work-diary .work-diary-info-grid-daily{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}

@media(max-width:760px){
  .page-work-diary .work-diary-filter-daily,
  .page-work-diary .work-diary-form-grid-daily,
  .page-work-diary .work-diary-item-grid,
  .page-work-diary .work-diary-info-grid-daily,
  .page-work-diary .work-diary-info-grid-item{
    grid-template-columns:1fr !important;
  }
  .page-work-diary .work-diary-section-head{
    display:block !important;
  }
  .page-work-diary .work-diary-section-head .actions{
    margin-top:10px !important;
  }
}


/* work diary compact input/search v3 */
.page-work-diary .work-diary-item-compact-grid{
  display:grid !important;
  grid-template-columns:130px minmax(190px,1fr) 120px minmax(250px,1.2fr) minmax(250px,1.2fr) 110px 130px !important;
  gap:10px !important;
  padding:12px !important;
  align-items:start !important;
}
.page-work-diary .work-diary-item-compact-grid label{
  position:relative !important;
  min-width:0 !important;
}
.page-work-diary .work-diary-item-detail{
  display:grid !important;
  grid-template-columns:1.1fr 1fr 1fr !important;
  gap:10px !important;
  padding:0 12px 12px !important;
  border-top:1px dashed #d7e5fb !important;
}
.page-work-diary .work-diary-item-detail[hidden]{
  display:none !important;
}
.page-work-diary .work-diary-item-head .actions{
  gap:6px !important;
}
.page-work-diary .work-diary-item-card.is-detail-open{
  border-color:#a9c9ff !important;
  box-shadow:0 12px 28px rgba(47,109,231,.08) !important;
}
.page-work-diary .work-diary-checks.compact{
  gap:8px !important;
  min-height:42px !important;
  white-space:nowrap !important;
}
.page-work-diary .work-diary-search-results{
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  top:100% !important;
  z-index:30 !important;
  max-height:230px !important;
  overflow:auto !important;
  padding:6px !important;
  border:1px solid #bcd3ff !important;
  border-radius:12px !important;
  background:#fff !important;
  box-shadow:0 18px 34px rgba(15,42,95,.14) !important;
}
.page-work-diary .work-diary-search-results[hidden]{
  display:none !important;
}
.page-work-diary .work-diary-result-option{
  display:block !important;
  width:100% !important;
  padding:9px 10px !important;
  border:0 !important;
  border-radius:10px !important;
  background:#fff !important;
  text-align:left !important;
  cursor:pointer !important;
}
.page-work-diary .work-diary-result-option:hover{
  background:#f1f6ff !important;
}
.page-work-diary .work-diary-result-option strong{
  display:block !important;
  color:#061d46 !important;
  font-size:13px !important;
  font-weight:950 !important;
  line-height:1.35 !important;
}
.page-work-diary .work-diary-result-option span,
.page-work-diary .work-diary-result-empty{
  display:block !important;
  margin-top:3px !important;
  color:#64748b !important;
  font-size:12px !important;
  font-weight:800 !important;
}
.page-work-diary .work-diary-result-empty{
  padding:10px !important;
  margin:0 !important;
}
@media(max-width:1200px){
  .page-work-diary .work-diary-item-compact-grid{
    grid-template-columns:120px minmax(180px,1fr) 120px minmax(220px,1fr) minmax(220px,1fr) !important;
  }
}
@media(max-width:760px){
  .page-work-diary .work-diary-item-compact-grid,
  .page-work-diary .work-diary-item-detail{
    grid-template-columns:1fr !important;
  }
}


/* work diary site search / overflow fix v4 */
.page-work-diary .work-diary-form,
.page-work-diary .work-diary-form-section,
.page-work-diary .work-diary-item-list,
.page-work-diary .work-diary-item-card,
.page-work-diary .work-diary-list-card,
.page-work-diary .work-diary-view-card{
  overflow:visible !important;
}

.page-work-diary .work-diary-item-card{
  position:relative !important;
  z-index:1 !important;
}
.page-work-diary .work-diary-item-card:focus-within{
  z-index:50 !important;
}

.page-work-diary .work-diary-item-compact-grid{
  grid-template-columns:130px minmax(200px,1fr) 120px minmax(230px,1fr) !important;
  align-items:start !important;
}

.page-work-diary .work-diary-item-compact-grid > label:nth-child(4),
.page-work-diary .work-diary-item-compact-grid > label:nth-child(5){
  min-width:0 !important;
}

.page-work-diary .work-diary-item-compact-grid > label:nth-child(5){
  grid-column:1 / 3 !important;
}

.page-work-diary .work-diary-item-compact-grid > label:nth-child(6){
  grid-column:3 / 4 !important;
}

.page-work-diary .work-diary-item-compact-grid > label:nth-child(7){
  grid-column:4 / 5 !important;
}

.page-work-diary .work-diary-search-results{
  z-index:9999 !important;
  min-width:280px !important;
}

@media(max-width:1100px){
  .page-work-diary .work-diary-item-compact-grid{
    grid-template-columns:120px minmax(180px,1fr) 120px minmax(190px,1fr) !important;
  }
}

@media(max-width:760px){
  .page-work-diary .work-diary-item-compact-grid{
    grid-template-columns:1fr !important;
  }
  .page-work-diary .work-diary-item-compact-grid > label:nth-child(5),
  .page-work-diary .work-diary-item-compact-grid > label:nth-child(6),
  .page-work-diary .work-diary-item-compact-grid > label:nth-child(7){
    grid-column:auto !important;
  }
}


/* work diary search active row / no page jump v5 */
.page-work-diary .work-diary-result-option.is-active,
.page-work-diary .work-diary-result-option[aria-selected="true"]{
  background:#eaf2ff !important;
  box-shadow:inset 3px 0 0 #2f6de7 !important;
}

.page-work-diary .work-diary-result-option.is-active strong,
.page-work-diary .work-diary-result-option[aria-selected="true"] strong{
  color:#0749b5 !important;
}

.page-work-diary .work-diary-result-option:focus{
  outline:2px solid rgba(47,109,231,.35) !important;
  outline-offset:-2px !important;
}


/* work diary search scroll stable v6 */
.page-work-diary .work-diary-search-results{
  overscroll-behavior:contain !important;
  scroll-behavior:auto !important;
}

.page-work-diary .work-diary-result-option{
  user-select:none !important;
}


/* work diary list/view cleanup v7 */
.page-work-diary .work-diary-table .wd-col-sites{width:48% !important;}
.page-work-diary .work-diary-table .wd-col-user{width:11% !important;}

.page-work-diary .work-diary-date-link{
  color:#03245c !important;
  font-weight:950 !important;
  text-decoration:none !important;
}

.page-work-diary .work-diary-site-cell{
  white-space:normal !important;
  line-height:1.5 !important;
  font-weight:950 !important;
}

.page-work-diary .work-diary-info-grid-item{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
}

.page-work-diary .work-diary-info-grid-item:empty{
  display:none !important;
}


/* work diary list companion column v8 */
.page-work-diary .work-diary-table .wd-col-date{width:16% !important;}
.page-work-diary .work-diary-table .wd-col-sites{width:46% !important;}
.page-work-diary .work-diary-table .wd-col-status{width:11% !important;}
.page-work-diary .work-diary-table .wd-col-companion{width:13% !important;}
.page-work-diary .work-diary-table .wd-col-actions{width:14% !important;}

.page-work-diary .work-diary-table td:nth-child(4){
  white-space:normal !important;
  line-height:1.45 !important;
  font-weight:900 !important;
}


/* work diary material outflow popup v9 */
.page-work-diary .work-diary-material-note{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
}

.page-work-diary-material-popup{
  background:#eef5ff !important;
  padding:0 !important;
}

.work-diary-material-popup-wrap{
  max-width:1180px !important;
  margin:0 auto !important;
  padding:18px !important;
}

.work-diary-material-popup-head{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:14px !important;
  margin-bottom:14px !important;
}

.work-diary-material-popup-head h1{
  margin:0 !important;
  color:#061d46 !important;
  font-size:24px !important;
  font-weight:950 !important;
}

.work-diary-material-popup-head p{
  margin:8px 0 0 !important;
  color:#52627b !important;
  font-weight:900 !important;
}

.work-diary-material-summary{
  display:grid !important;
  grid-template-columns:repeat(6,minmax(0,1fr)) !important;
  gap:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  margin-bottom:14px !important;
}

.work-diary-material-summary div{
  padding:14px !important;
  border-right:1px solid #e6eefb !important;
  background:#fff !important;
}

.work-diary-material-summary div:last-child{
  border-right:0 !important;
}

.work-diary-material-summary span{
  display:block !important;
  color:#64748b !important;
  font-size:12px !important;
  font-weight:950 !important;
}

.work-diary-material-summary b{
  display:block !important;
  margin-top:7px !important;
  color:#061d46 !important;
  font-size:16px !important;
  font-weight:950 !important;
  word-break:break-all !important;
}

.work-diary-material-card{
  overflow:visible !important;
}

.work-diary-material-table-wrap{
  overflow:auto !important;
  max-height:520px !important;
}

.work-diary-material-table{
  width:100% !important;
  min-width:1080px !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
}

.work-diary-material-table th{
  position:sticky !important;
  top:0 !important;
  z-index:2 !important;
  padding:11px 9px !important;
  background:#f1f6ff !important;
  color:#52627b !important;
  font-size:12px !important;
  font-weight:950 !important;
  border-bottom:1px solid #d9e6fb !important;
  text-align:left !important;
}

.work-diary-material-table td{
  padding:10px 9px !important;
  border-bottom:1px solid #eef2f7 !important;
  vertical-align:middle !important;
  color:#0f254a !important;
  font-weight:850 !important;
}

.work-diary-material-table .center{
  text-align:center !important;
}

.work-diary-material-table .num{
  text-align:right !important;
  white-space:nowrap !important;
}

.work-diary-material-table b{
  font-weight:950 !important;
}

.work-diary-material-table em{
  display:block !important;
  margin-top:3px !important;
  color:#2563eb !important;
  font-size:11px !important;
  font-style:normal !important;
  font-weight:900 !important;
}

.work-diary-material-table tr.is-not-used td{
  background:#f8fafc !important;
  color:#94a3b8 !important;
}

.work-diary-material-qty-input{
  max-width:86px !important;
  height:34px !important;
  text-align:right !important;
  padding:0 8px !important;
}

.work-diary-material-footer{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:8px !important;
  padding:14px !important;
  border-top:1px solid #e6eefb !important;
}

.work-diary-material-footer .notice{
  margin-right:auto !important;
}

@media(max-width:900px){
  .work-diary-material-summary{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  .work-diary-material-summary div:nth-child(2n){
    border-right:0 !important;
  }
}


/* work diary material button visible fix v10 */
.page-work-diary .work-diary-material-link-cell{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:5px !important;
}

.page-work-diary .work-diary-material-link-cell .btn{
  margin-top:4px !important;
}

.page-work-diary .work-diary-construction-note{
  margin:12px 16px 16px !important;
}


/* estimate item source/material link v11 */
.page-estimate .estimate-item-memo-cell{
  display:flex !important;
  flex-direction:column !important;
  gap:5px !important;
  min-width:0 !important;
}
.page-estimate .estimate-item-source-actions{
  display:flex !important;
  align-items:center !important;
  gap:5px !important;
  flex-wrap:wrap !important;
}
.page-estimate .estimate-item-source-badge{
  display:inline-flex !important;
  align-items:center !important;
  min-height:22px !important;
  padding:2px 7px !important;
  border-radius:999px !important;
  font-size:11px !important;
  font-weight:950 !important;
  line-height:1 !important;
  border:1px solid rgba(15,23,42,.16) !important;
  background:#f8fafc !important;
  color:#334155 !important;
  white-space:nowrap !important;
}
.page-estimate .estimate-item-source-badge.source-material{
  background:#e8fff1 !important;
  color:#047032 !important;
  border-color:#9ce3b7 !important;
}
.page-estimate .estimate-item-source-badge.source-manual{
  background:#fff7ed !important;
  color:#9a3412 !important;
  border-color:#fdba74 !important;
}
.page-estimate .estimate-item-source-badge.source-labor,
.page-estimate .estimate-item-source-badge.source-etc{
  background:#eef2ff !important;
  color:#3730a3 !important;
  border-color:#c7d2fe !important;
}
.page-estimate .estimate-item-source-actions .btn.tiny{
  padding:4px 7px !important;
  font-size:11px !important;
  min-height:22px !important;
}
.page-work-diary-material-popup .work-diary-material-excluded-card{
  margin-top:12px !important;
}
.page-work-diary-material-popup .work-diary-material-excluded-table td:last-child{
  white-space:normal !important;
  min-width:170px !important;
}

/* estimate material id link/status v12 */
.page-estimate .estimate-material-status-card{
  overflow:visible !important;
}
.page-estimate .estimate-material-status-summary{
  display:flex !important;
  align-items:center !important;
  gap:6px !important;
  flex-wrap:wrap !important;
}
.page-estimate .estimate-material-status-table-wrap{
  overflow:auto !important;
  margin-top:10px !important;
}
.page-estimate .estimate-material-status-table{
  width:100% !important;
  min-width:860px !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
}
.page-estimate .estimate-material-status-table th{
  padding:10px 9px !important;
  background:#f1f6ff !important;
  color:#52627b !important;
  font-size:12px !important;
  font-weight:950 !important;
  border-bottom:1px solid #d9e6fb !important;
  text-align:left !important;
}
.page-estimate .estimate-material-status-table td{
  padding:10px 9px !important;
  border-bottom:1px solid #eef2f7 !important;
  color:#0f254a !important;
  font-weight:850 !important;
  vertical-align:middle !important;
}
.page-estimate .estimate-material-status-table .num,
.page-estimate .estimate-material-status-table .ta-right{
  text-align:right !important;
  white-space:nowrap !important;
}
.page-estimate .estimate-material-status-table b{
  font-weight:950 !important;
}
.page-estimate .estimate-item-source-actions [hidden]{
  display:none !important;
}
.page-estimate-material-link{
  background:#eef5ff !important;
  padding:0 !important;
}
.estimate-material-link-wrap{
  max-width:980px !important;
  margin:0 auto !important;
  padding:18px !important;
}
.estimate-material-link-head{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:14px !important;
  margin-bottom:14px !important;
}
.estimate-material-link-head h1{
  margin:0 !important;
  color:#061d46 !important;
  font-size:24px !important;
  font-weight:950 !important;
}
.estimate-material-link-head p{
  margin:8px 0 0 !important;
  color:#52627b !important;
  font-weight:900 !important;
}
.estimate-material-link-grid{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:10px !important;
  margin-top:12px !important;
}
.estimate-material-link-grid div,
.estimate-material-link-now{
  padding:12px !important;
  border:1px solid #e6eefb !important;
  border-radius:14px !important;
  background:#fff !important;
}
.estimate-material-link-grid span{
  display:block !important;
  color:#64748b !important;
  font-size:12px !important;
  font-weight:950 !important;
}
.estimate-material-link-grid b{
  display:block !important;
  margin-top:6px !important;
  color:#061d46 !important;
  font-size:14px !important;
  font-weight:950 !important;
  word-break:break-all !important;
}
.estimate-material-link-now{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  flex-wrap:wrap !important;
  margin-top:10px !important;
}
.estimate-material-link-now strong{
  color:#061d46 !important;
  font-weight:950 !important;
}
.estimate-material-link-now em{
  color:#64748b !important;
  font-style:normal !important;
  font-weight:850 !important;
}
.estimate-material-link-search-form{
  display:grid !important;
  grid-template-columns:1fr auto !important;
  gap:8px !important;
  margin:10px 0 !important;
}
.estimate-material-link-results{
  display:grid !important;
  gap:8px !important;
  margin-top:10px !important;
}
.estimate-material-link-result{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  padding:12px !important;
  border:1px solid #d6e4ff !important;
  border-radius:14px !important;
  background:#fff !important;
  box-shadow:0 8px 18px rgba(15,42,95,.05) !important;
}
.estimate-material-link-result strong,
.estimate-material-link-result span,
.estimate-material-link-result em{
  display:block !important;
}
.estimate-material-link-result strong{
  color:#061d46 !important;
  font-weight:950 !important;
}
.estimate-material-link-result span,
.estimate-material-link-result em{
  margin-top:4px !important;
  color:#64748b !important;
  font-size:12px !important;
  font-style:normal !important;
  font-weight:850 !important;
}
@media(max-width:760px){
  .estimate-material-link-grid{
    grid-template-columns:1fr !important;
  }
  .estimate-material-link-search-form,
  .estimate-material-link-result{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
  }
}

/* estimate material side panel v1 */
.estimate-material-panel-open{
  overflow:hidden !important;
}
.estimate-material-sidepanel-backdrop[hidden]{
  display:none !important;
}
.estimate-material-sidepanel-backdrop{
  position:fixed !important;
  inset:0 !important;
  z-index:9990 !important;
  display:flex !important;
  justify-content:flex-end !important;
  background:rgba(6,29,70,.38) !important;
  backdrop-filter:blur(2px) !important;
}
.estimate-material-sidepanel{
  width:min(980px, 96vw) !important;
  height:100vh !important;
  display:flex !important;
  flex-direction:column !important;
  background:#eef5ff !important;
  box-shadow:-20px 0 45px rgba(6,29,70,.24) !important;
  border-left:1px solid rgba(255,255,255,.65) !important;
}
.estimate-material-sidepanel-head{
  flex:0 0 auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  padding:14px 16px !important;
  background:#fff !important;
  border-bottom:1px solid #dbe7f8 !important;
}
.estimate-material-sidepanel-head strong,
.estimate-material-sidepanel-head span{
  display:block !important;
}
.estimate-material-sidepanel-head strong{
  color:#061d46 !important;
  font-size:18px !important;
  font-weight:950 !important;
}
.estimate-material-sidepanel-head span{
  margin-top:3px !important;
  color:#64748b !important;
  font-size:12px !important;
  font-weight:850 !important;
}
.estimate-material-sidepanel-frame{
  flex:1 1 auto !important;
  width:100% !important;
  min-height:0 !important;
  border:0 !important;
  background:#eef5ff !important;
}
@media(max-width:760px){
  .estimate-material-sidepanel{
    width:100vw !important;
  }
  .estimate-material-sidepanel-head{
    padding:11px 12px !important;
  }
}

/* material link panel/work diary quick link v14 */
.page-estimate-material-link.is-panel-frame .estimate-material-link-head{
  margin-bottom:16px !important;
}
.page-estimate-material-link .estimate-material-link-current{
  margin-bottom:18px !important;
}
.page-estimate-material-link .estimate-material-link-search-card{
  margin-top:18px !important;
}
.page-estimate-material-link .estimate-material-link-auto-query{
  background:#f3f8ff !important;
  border-color:#d7e7ff !important;
}
.page-work-diary-material-popup .work-diary-material-link-action{
  min-width:105px !important;
  white-space:nowrap !important;
}
.page-work-diary-material-popup .work-diary-material-link-action .btn{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}
.page-work-diary-material-popup .estimate-material-sidepanel-backdrop{
  z-index:10020 !important;
}

/* 업무일지 자재출고 취소/재확정 */
.work-diary-material-locked-notice {
  flex: 1 1 520px;
  margin: 0;
}
.work-diary-material-cancel-form {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
}
.work-diary-material-footer .work-diary-material-cancel-form .btn {
  white-space: nowrap;
}

/* 업무일지 자재사용/출고 팝업 상단 버튼 정렬 */
.work-diary-material-popup-actions{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:8px !important;
  flex-wrap:wrap !important;
  margin-top:0 !important;
}

/* 업무일지 목록 제목 1줄 말줄임 패치 */
.page-work-diary-list .work-diary-table .wd-col-date{width:11% !important;}
.page-work-diary-list .work-diary-table .wd-col-title{width:24% !important;}
.page-work-diary-list .work-diary-table .wd-col-sites{width:21% !important;}
.page-work-diary-list .work-diary-table .wd-col-status{width:8% !important;}
.page-work-diary-list .work-diary-table .wd-col-companion{width:26% !important;}
.page-work-diary-list .work-diary-title-cell{
  max-width:0;
  white-space:nowrap;
}
.page-work-diary-list .work-diary-title-ellipsis{
  display:block;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#03245c;
  font-weight:950;
}
.page-work-diary-deleted .work-diary-title-cell{
  max-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* 업무일지 목록 제목 컬럼 제거 + 한 줄 말줄임 */
.page-work-diary-list .work-diary-table .wd-col-date{width:13% !important;}
.page-work-diary-list .work-diary-table .wd-col-sites{width:45% !important;}
.page-work-diary-list .work-diary-table .wd-col-status{width:10% !important;}
.page-work-diary-list .work-diary-table .wd-col-companion{width:20% !important;}
.page-work-diary-list .work-diary-table .wd-col-actions{width:12% !important;}
.page-work-diary-list .work-diary-site-cell,
.page-work-diary-list .work-diary-companion-cell{
  max-width:0 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
.page-work-diary-list .work-diary-list-ellipsis{
  display:block !important;
  max-width:100% !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  color:#03245c !important;
  font-weight:950 !important;
  text-decoration:none !important;
}
.page-work-diary-list .work-diary-companion-cell .work-diary-list-ellipsis{
  color:#334155 !important;
  font-weight:900 !important;
}

/* 출고 확정된 업무내역 삭제 보호 표시 */
.page-work-diary-form .work-diary-item-card.is-material-locked{
  border-color:#fed7aa !important;
  background:linear-gradient(180deg,#fffaf4 0%,#ffffff 100%) !important;
}
.page-work-diary-form .work-diary-item-card.is-material-locked .work-diary-item-head strong::after{
  content:'출고확정';
  display:inline-flex;
  align-items:center;
  margin-left:8px;
  min-height:22px;
  padding:0 8px;
  border-radius:999px;
  border:1px solid #bbf7d0;
  background:#ecfdf5;
  color:#047857;
  font-size:12px;
  font-weight:950;
}
.page-work-diary-form [data-work-diary-remove-item]:disabled{
  opacity:.65 !important;
  cursor:not-allowed !important;
}


/* 업무일지 삭제/수정 차단 사유 안내 */
.page-work-diary .work-diary-block-message{
  margin:0 0 14px;
  font-weight:800;
}
.page-work-diary-form .work-diary-item-lock-notice{
  margin:10px 0 14px;
  padding:10px 12px;
  font-size:13px;
  font-weight:800;
  line-height:1.45;
}
.page-work-diary .btn.is-locked-action{
  opacity:1;
  cursor:pointer;
  border-color:#fecaca;
  background:#fff1f2;
  color:#be123c;
}
.page-work-diary .btn.is-locked-action:hover{
  background:#ffe4e6;
  color:#9f1239;
}

/* 업무일지 자재 직접출고/사용출처 표시 보강 */
.work-diary-material-direct-card .notice { margin-bottom: 14px; }
.work-diary-direct-material-search-card {
  position: relative;
  margin: 12px 0 16px;
  padding: 14px;
  border: 1px solid rgba(20, 83, 45, .12);
  border-radius: 14px;
  background: rgba(247, 252, 245, .75);
}
.work-diary-direct-material-search-card label { display: grid; gap: 6px; font-weight: 800; color: #24513a; }
.work-diary-direct-material-results {
  position: absolute;
  left: 14px;
  right: 14px;
  top: calc(100% - 8px);
  z-index: 20;
  max-height: 320px;
  overflow: auto;
  padding: 8px;
  border: 1px solid rgba(20, 83, 45, .18);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 16px 36px rgba(15, 23, 42, .16);
}
.work-diary-direct-material-option {
  width: 100%;
  display: grid;
  gap: 4px;
  padding: 10px 12px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.work-diary-direct-material-option:hover,
.work-diary-direct-material-option:focus { background: rgba(132, 204, 22, .12); outline: none; }
.work-diary-direct-material-option strong { color: #143d2a; }
.work-diary-direct-material-option span,
.work-diary-direct-material-empty { color: #64748b; font-size: 13px; }
.work-diary-direct-material-table input.input { min-width: 86px; }
.work-diary-direct-material-table td em,
.estimate-stock-out-table td em,
.material-stock-source-cell em {
  display: inline-block;
  margin-left: 6px;
  color: #64748b;
  font-style: normal;
  font-size: 12px;
}
.work-diary-direct-total {
  margin-right: auto;
  font-weight: 800;
  color: #24513a;
}
.work-diary-direct-total b { color: #14532d; font-size: 18px; }
.material-stock-source-cell { min-width: 180px; }
.material-stock-source-cell b,
.material-stock-source-cell span,
.material-stock-source-cell a { display: block; }
.material-stock-source-cell b { color: #143d2a; }
.material-stock-source-cell span { color: #64748b; font-size: 12px; }
.material-stock-source-cell a { margin-top: 3px; font-size: 12px; font-weight: 800; }
.estimate-stock-out-table-wrap { overflow-x: auto; }
.estimate-stock-out-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  min-width: 820px;
}
.estimate-stock-out-table th,
.estimate-stock-out-table td {
  padding: 10px 12px;
  border-bottom: 1px solid rgba(15, 23, 42, .08);
  vertical-align: middle;
}
.estimate-stock-out-table th {
  background: rgba(20, 83, 45, .06);
  color: #24513a;
  font-size: 13px;
  text-align: left;
}
.estimate-stock-out-table .num { text-align: right; white-space: nowrap; }


/* 업무일지 입력 화면: 스크롤 따라다니는 업무 추가 바 */
.page-work-diary-form .work-diary-wrap{
  padding-bottom:110px !important;
}
.page-work-diary-form .work-diary-floating-addbar{
  position:fixed !important;
  left:50% !important;
  bottom:18px !important;
  transform:translateX(-50%) !important;
  z-index:5000 !important;
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  max-width:calc(100vw - 36px) !important;
  padding:12px 14px !important;
  border:1px solid rgba(188,211,255,.95) !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.94) !important;
  box-shadow:0 18px 42px rgba(15,42,95,.18) !important;
  backdrop-filter:blur(10px) !important;
}
.page-work-diary-form .work-diary-floating-addbar-title{
  flex:0 0 auto !important;
  color:#061d46 !important;
  font-size:13px !important;
  font-weight:950 !important;
  white-space:nowrap !important;
}
.page-work-diary-form .work-diary-floating-addbar-buttons{
  display:flex !important;
  align-items:center !important;
  gap:6px !important;
  overflow-x:auto !important;
  scrollbar-width:none !important;
}
.page-work-diary-form .work-diary-floating-addbar-buttons::-webkit-scrollbar{
  display:none !important;
}
.page-work-diary-form .work-diary-floating-addbar .btn{
  flex:0 0 auto !important;
  min-height:34px !important;
  padding:7px 12px !important;
  border-radius:999px !important;
  box-shadow:0 6px 16px rgba(15,42,95,.08) !important;
}
@media(max-width:760px){
  .page-work-diary-form .work-diary-wrap{
    padding-bottom:120px !important;
  }
  .page-work-diary-form .work-diary-floating-addbar{
    left:10px !important;
    right:10px !important;
    bottom:10px !important;
    transform:none !important;
    max-width:none !important;
    border-radius:20px !important;
    justify-content:flex-start !important;
  }
  .page-work-diary-form .work-diary-floating-addbar-title{
    padding-left:2px !important;
  }
}
@media print{
  .page-work-diary-form .work-diary-floating-addbar{
    display:none !important;
  }
}

/* =========================================================
   DASHBOARD HOME 1차
   ========================================================= */
.page-dashboard-home .container{
  max-width:1240px;
}
.dashboard-home-wrap{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.dashboard-hero{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  padding:22px 24px;
  border-color:#cfe0ff;
  background:linear-gradient(135deg,#ffffff 0%,#f5f9ff 62%,#ecfdf5 100%);
}
.dashboard-kicker{
  margin:0 0 8px;
  color:#2563eb;
  font-size:13px;
  font-weight:950;
}
.dashboard-hero h2{
  margin:0;
  color:#061d46;
  font-size:26px;
  font-weight:950;
  letter-spacing:-.04em;
}
.dashboard-hero-sub{
  margin:8px 0 0;
  color:#64748b;
  font-size:13px;
  font-weight:800;
}
.dashboard-hero-actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.dashboard-summary-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;
}
.dashboard-summary-card{
  display:block;
  min-height:112px;
  padding:16px;
  border:1px solid #dbe7fb;
  border-radius:22px;
  background:#fff;
  box-shadow:0 12px 28px rgba(15,23,42,.06);
  text-decoration:none;
  color:#061d46;
}
.dashboard-summary-card:hover{
  transform:translateY(-1px);
  border-color:#93c5fd;
}
.dashboard-summary-card span{
  display:block;
  color:#64748b;
  font-size:13px;
  font-weight:950;
}
.dashboard-summary-card strong{
  display:block;
  margin-top:10px;
  font-size:30px;
  line-height:1;
  font-weight:950;
  letter-spacing:-.04em;
}
.dashboard-summary-card em{
  display:block;
  margin-top:8px;
  color:#475569;
  font-style:normal;
  font-size:12px;
  font-weight:900;
}
.dashboard-summary-card.is-warning{
  background:linear-gradient(180deg,#fffdf5 0%,#fff7ed 100%);
  border-color:#fed7aa;
}
.dashboard-summary-card.is-danger{
  background:linear-gradient(180deg,#fffafa 0%,#fff1f2 100%);
  border-color:#fecaca;
}
.dashboard-summary-card.is-ok{
  background:linear-gradient(180deg,#fbfffc 0%,#effff4 100%);
  border-color:#bbf7d0;
}
.dashboard-main-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr);
  gap:16px;
  align-items:start;
}
.dashboard-panel{
  padding:18px;
  border-color:#dbe7fb;
}
.dashboard-panel-large,
.dashboard-panel-wide{
  grid-column:auto;
}
.dashboard-panel-wide{
  grid-column:1 / -1;
}
.dashboard-panel-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  margin-bottom:14px;
  padding-bottom:12px;
  border-bottom:1px solid #edf2fb;
}
.dashboard-panel-head h3{
  margin:0;
  color:#061d46;
  font-size:18px;
  font-weight:950;
  letter-spacing:-.03em;
}
.dashboard-panel-head p{
  margin:5px 0 0;
  color:#64748b;
  font-size:12px;
  font-weight:850;
}
.dashboard-empty{
  padding:18px;
  border:1px dashed #cbd5e1;
  border-radius:18px;
  background:#f8fafc;
  color:#64748b;
  text-align:center;
  font-weight:900;
}
.dashboard-list,
.dashboard-mini-list,
.dashboard-week-list,
.dashboard-material-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.dashboard-list-item,
.dashboard-material-item{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:14px;
  border:1px solid #e5edf8;
  border-radius:18px;
  background:#fff;
}
.dashboard-list-item:hover,
.dashboard-mini-item:hover,
.dashboard-week-item:hover,
.dashboard-material-item:hover{
  border-color:#bfdbfe;
  background:#f8fbff;
}
.dashboard-row-title{
  color:#061d46;
  font-size:16px;
  font-weight:950;
  word-break:keep-all;
}
.dashboard-row-meta{
  margin-top:6px;
  color:#0f254a;
  font-size:13px;
  font-weight:850;
}
.dashboard-row-sub{
  margin-top:4px;
  color:#64748b;
  font-size:12px;
  font-weight:750;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dashboard-row-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
}
.dashboard-mini-item,
.dashboard-week-item{
  position:relative;
  display:block;
  padding:13px 86px 13px 14px;
  border:1px solid #e5edf8;
  border-radius:16px;
  background:#fff;
  text-decoration:none;
  color:#061d46;
}
.dashboard-mini-title,
.dashboard-week-item b{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-weight:950;
}
.dashboard-mini-meta,
.dashboard-week-item em,
.dashboard-week-item span{
  display:block;
  margin-top:4px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#64748b;
  font-size:12px;
  font-style:normal;
  font-weight:800;
}
.dashboard-dday,
.dashboard-money{
  position:absolute;
  right:12px;
  top:50%;
  transform:translateY(-50%);
  padding:6px 9px;
  border-radius:999px;
  background:#eff6ff;
  color:#1d4ed8;
  font-size:12px;
  font-weight:950;
  white-space:nowrap;
}
.dashboard-dday.danger{
  background:#fff1f2;
  color:#be123c;
}
.dashboard-dday.warning{
  background:#fff7ed;
  color:#c2410c;
}
.dashboard-money{
  background:#fff1f2;
  color:#be123c;
}
.dashboard-week-item{
  padding-right:14px;
}
.dashboard-week-item span{
  color:#2563eb;
}
.dashboard-material-item{
  grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;
}
.dashboard-material-item b,
.dashboard-material-item span,
.dashboard-material-item em{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dashboard-material-item b{
  color:#061d46;
  font-size:15px;
  font-weight:950;
}
.dashboard-material-item span,
.dashboard-material-item em{
  margin-top:4px;
  color:#64748b;
  font-size:12px;
  font-style:normal;
  font-weight:800;
}

/* 대시보드 더보기: 기본 브라우저 모양 대신 간결한 이전형 표시 */
.dashboard-more-details{
  display:block;
  width:100%;
  min-width:0;
  margin:1px 0 0;
}
.dashboard-more-details > summary{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:30px;
  padding:4px 2px;
  color:#0f254a;
  font-size:13px;
  line-height:1.2;
  font-weight:900;
  list-style:none;
  cursor:pointer;
  user-select:none;
}
.dashboard-more-details > summary::-webkit-details-marker{
  display:none;
}
.dashboard-more-details > summary::before{
  content:'▶';
  color:#334155;
  font-size:10px;
  line-height:1;
  transform-origin:center;
  transition:transform .12s ease;
}
.dashboard-more-details[open] > summary::before{
  transform:rotate(90deg);
}
.dashboard-more-details > summary span{
  color:#64748b;
  font-size:12px;
  font-weight:850;
}
.dashboard-more-details > summary:hover{
  color:#1d4ed8;
}
.dashboard-more-details > .dashboard-more-list{
  margin-top:6px;
}
.dashboard-more-link{
  display:block;
  padding:10px 12px;
  border:1px dashed #bfdbfe;
  border-radius:14px;
  background:#f8fbff;
  color:#1d4ed8;
  text-align:center;
  text-decoration:none;
  font-size:12px;
  font-weight:900;
}
.dashboard-more-link:hover{
  border-color:#60a5fa;
  background:#eff6ff;
}

/* 대시보드 오늘 일정 빈 상태 안내 */
.dashboard-empty.dashboard-empty-today{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:170px;
  padding:24px 18px;
  border-style:solid;
  border-color:#dbeafe;
  background:linear-gradient(180deg,#fbfdff 0%,#f3f8ff 100%);
}
.dashboard-empty-today .dashboard-empty-icon{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#eff6ff;
  border:1px solid #bfdbfe;
  color:#2563eb;
  font-size:20px;
  font-weight:950;
  box-shadow:0 8px 18px rgba(37,99,235,.08);
  margin-bottom:10px;
}
.dashboard-empty-today strong{
  display:block;
  color:#061d46;
  font-size:16px;
  font-weight:950;
}
.dashboard-empty-today p{
  margin:8px auto 0;
  max-width:460px;
  color:#64748b;
  font-size:13px;
  line-height:1.45;
  font-weight:800;
}
.dashboard-empty-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px;
  margin-top:16px;
}

@media(max-width:980px){
  .dashboard-summary-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .dashboard-main-grid{
    grid-template-columns:1fr;
  }
  .dashboard-material-item{
    grid-template-columns:1fr;
  }
  .dashboard-row-actions{
    justify-content:flex-start;
  }
}
@media(max-width:640px){
  .dashboard-hero{
    display:block;
    padding:18px;
  }
  .dashboard-hero-actions{
    justify-content:flex-start;
    margin-top:14px;
  }
  .dashboard-summary-grid{
    grid-template-columns:1fr;
  }
  .dashboard-list-item{
    grid-template-columns:1fr;
  }
  .dashboard-summary-card{
    min-height:94px;
  }
}


/* 업무일지/대상처 공통 하단 플로팅 작업바 */
.page-work-diary-form .work-diary-wrap,
.page-work-diary-view .work-diary-wrap,
.page-site-create .container,
.page-site-edit .container,
.page-site-view .container{
  padding-bottom:128px !important;
}
.work-diary-floating-actionbar,
.site-floating-actionbar{
  position:fixed !important;
  left:50% !important;
  bottom:16px !important;
  transform:translateX(-50%) !important;
  z-index:9000 !important;
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
  width:auto !important;
  max-width:calc(100vw - 38px) !important;
  min-height:48px !important;
  padding:10px 12px !important;
  border:1px solid rgba(188,211,255,.96) !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.96) !important;
  box-shadow:0 18px 44px rgba(15,42,95,.20) !important;
  backdrop-filter:blur(12px) !important;
}
.work-diary-floating-actionbar-group,
.site-floating-actionbar-group{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:center !important;
  gap:6px !important;
  min-width:0 !important;
}
.work-diary-floating-addbar-title{
  flex:0 0 auto !important;
  padding:0 4px !important;
  color:#061d46 !important;
  font-size:13px !important;
  font-weight:950 !important;
  white-space:nowrap !important;
}
.work-diary-floating-actionbar .btn,
.site-floating-actionbar .btn{
  flex:0 0 auto !important;
  min-height:34px !important;
  padding:7px 12px !important;
  border-radius:999px !important;
  white-space:nowrap !important;
  box-shadow:0 6px 16px rgba(15,42,95,.08) !important;
}
.work-diary-floating-actionbar form.inline,
.site-floating-actionbar form.inline{
  display:inline-flex !important;
  margin:0 !important;
}
.site-floating-anchor-group{
  max-width:42vw !important;
  overflow-x:auto !important;
  scrollbar-width:none !important;
  padding:0 2px !important;
}
.site-floating-anchor-group::-webkit-scrollbar{
  display:none !important;
}
@media(max-width:900px){
  .work-diary-floating-actionbar,
  .site-floating-actionbar{
    left:10px !important;
    right:10px !important;
    bottom:10px !important;
    transform:none !important;
    max-width:none !important;
    justify-content:flex-start !important;
    overflow-x:auto !important;
    border-radius:22px !important;
    scrollbar-width:none !important;
  }
  .work-diary-floating-actionbar::-webkit-scrollbar,
  .site-floating-actionbar::-webkit-scrollbar{
    display:none !important;
  }
  .site-floating-anchor-group{
    max-width:none !important;
  }
}
@media(max-width:560px){
  .work-diary-floating-actionbar,
  .site-floating-actionbar{
    padding:9px 10px !important;
    gap:7px !important;
  }
  .work-diary-floating-actionbar .btn,
  .site-floating-actionbar .btn{
    min-height:32px !important;
    padding:6px 10px !important;
    font-size:12px !important;
  }
  .work-diary-floating-addbar-title{
    display:none !important;
  }
}
@media print{
  .work-diary-floating-actionbar,
  .site-floating-actionbar{
    display:none !important;
  }
}

/* =========================================================
   USER MANAGEMENT CARD DESIGN FIX v3
   - 직원관리 페이지 상단/검색/상세/폼 카드 디자인 통일
   - PHP/저장/삭제/검색 로직 변경 없음
   ========================================================= */













@media(max-width:760px){
}


/* =========================================================
   CUMULATIVE CARD DESIGN RESTORE PATCH
   - 이전 CSS 전체 덮어쓰기 패치로 사라진 공통/대상처/점검/직원 카드 스타일 재적용
   - 기능 로직 변경 없음
   ========================================================= */

/* --- phase1 common card restore --- */
/* =========================================================
   MODULE TOP CARD UNIFY PATCH (2026-07)
   - 공통 업무홈/수금관리 스타일 기반 상단 타이틀·검색 카드 통일
   - 저장/삭제/검색 로직, data-* 속성은 건드리지 않고 CSS만 보정
   ========================================================= */
body.page-user-list .user-title-row,
body.page-user-create .user-title-row,
body.page-user-edit .user-title-row,
body.page-user-view .user-title-row,
body.page-material .material-title-row,
body.page-work-diary .work-diary-title-row,
body.page-site-list .container > .stack > .row:first-child,
body.page-site-create #siteCreateForm > .row:first-child,
body.page-site-edit form > .row:first-child,
body.page-site-view .container > .row:first-child,
body.page-estimate:not(.estimate-print-page) .estimate-form-stack > .row:first-child,
body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .container > .stack > .row:first-child{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  margin:14px 0 16px;
  padding:22px 24px;
  border:1px solid #cfe0ff;
  border-radius:24px;
  background:linear-gradient(135deg,#ffffff 0%,#f7fbff 58%,#effff6 100%);
  box-shadow:0 18px 46px rgba(15,23,42,.08);
}

body.page-site-list .container > .stack > .row:first-child h2,
body.page-site-create #siteCreateForm > .row:first-child h2,
body.page-site-edit form > .row:first-child h2,
body.page-site-view .container > .row:first-child h2,
body.page-estimate:not(.estimate-print-page) .estimate-form-stack > .row:first-child h2,
body.page-user-list .user-title-row h2,
body.page-user-create .user-title-row h2,
body.page-user-edit .user-title-row h2,
body.page-user-view .user-title-row h2,
body.page-material .material-title-row h2,
body.page-work-diary .work-diary-title-row h2{
  margin:0;
  color:#061d46;
  font-size:24px;
  font-weight:950;
  letter-spacing:-.04em;
}

body.page-user-list .user-title-row p,
body.page-user-create .user-title-row p,
body.page-user-edit .user-title-row p,
body.page-user-view .user-title-row p,
body.page-material .material-title-row p,
body.page-work-diary .work-diary-title-row p,
body.page-site-list .container > .stack > .row:first-child p,
body.page-site-create #siteCreateForm > .row:first-child p,
body.page-site-edit form > .row:first-child p,
body.page-site-view .container > .row:first-child p,
body.page-estimate:not(.estimate-print-page) .estimate-form-stack > .row:first-child p{
  margin:8px 0 0;
  color:#64748b;
  font-size:13px;
  font-weight:850;
}

body.page-user-list .user-title-row .actions,
body.page-user-create .user-title-row .actions,
body.page-user-edit .user-title-row .actions,
body.page-user-view .user-title-row .actions,
body.page-material .material-title-row .actions,
body.page-work-diary .work-diary-title-row .actions,
body.page-site-list .container > .stack > .row:first-child .actions,
body.page-site-create #siteCreateForm > .row:first-child .actions,
body.page-site-edit form > .row:first-child .actions,
body.page-site-view .container > .row:first-child .actions,
body.page-estimate:not(.estimate-print-page) .estimate-form-stack > .row:first-child .actions,
body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .container > .stack > .row:first-child .actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

/* 검색/필터 카드 공통 톤 */
body.page-user-list .user-filter-card,
body.page-material .material-filter-card,
body.page-work-diary .work-diary-filter-card,
body.page-estimate:not(.estimate-print-page) .estimate-filter-card,
body.page-site-list .container > .stack > .card:first-of-type{
  margin-bottom:14px;
  border:1px solid #d9e7fb !important;
  border-radius:22px !important;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%) !important;
  box-shadow:0 14px 34px rgba(15,23,42,.06) !important;
}

body.page-user-list .user-filter-card form,
body.page-material .material-filter-card form,
body.page-work-diary .work-diary-filter-card form,
body.page-estimate:not(.estimate-print-page) .estimate-filter-card form,
body.page-site-list .container > .stack > .card:first-of-type form{
  align-items:flex-end;
  gap:12px;
}

body.page-user-list .user-filter-card label,
body.page-material .material-filter-card label span,
body.page-work-diary .work-diary-filter-card label span,
body.page-estimate:not(.estimate-print-page) .estimate-filter-card label,
body.page-site-list .container > .stack > .card:first-of-type label,
body.page-site-list .container > .stack > .card:first-of-type .help{
  color:#0f254a;
  font-weight:950;
  font-size:12px;
}

body.page-user-list .user-filter-card .input,
body.page-material .material-filter-card .input,
body.page-work-diary .work-diary-filter-card .input,
body.page-estimate:not(.estimate-print-page) .estimate-filter-card .input,
body.page-site-list .container > .stack > .card:first-of-type .input{
  min-height:46px;
  border-color:#dbe8fb;
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 18px rgba(15,23,42,.03);
}

body.page-user-list .user-filter-card .btn,
body.page-material .material-filter-card .btn,
body.page-work-diary .work-diary-filter-card .btn,
body.page-estimate:not(.estimate-print-page) .estimate-filter-card .btn,
body.page-site-list .container > .stack > .card:first-of-type .btn{
  min-height:46px;
  padding-left:18px;
  padding-right:18px;
  border-radius:14px;
}

/* 요약 카드도 업무홈 카드 느낌으로 통일 */
body.page-user-list .user-summary-card,
body.page-material .material-summary-card{
  border:1px solid #dbe7fb !important;
  border-radius:22px !important;
  background:#fff !important;
  box-shadow:0 12px 28px rgba(15,23,42,.06) !important;
}
body.page-user-list .user-summary-card:hover,
body.page-material .material-summary-card:hover{
  transform:translateY(-1px);
  border-color:#93c5fd !important;
}

/* 견적서 목록 상단 카드 내부 제목 pill 보정 */
body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .estimate-page-heading{
  display:flex;
  flex-direction:column;
  gap:6px;
}
body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .estimate-title-pill{
  margin:0;
}

@media(max-width:760px){
  body.page-user-list .user-title-row,
  body.page-user-create .user-title-row,
  body.page-user-edit .user-title-row,
  body.page-user-view .user-title-row,
  body.page-material .material-title-row,
  body.page-work-diary .work-diary-title-row,
  body.page-site-list .container > .stack > .row:first-child,
  body.page-site-create #siteCreateForm > .row:first-child,
  body.page-site-edit form > .row:first-child,
  body.page-site-view .container > .row:first-child,
  body.page-estimate:not(.estimate-print-page) .estimate-form-stack > .row:first-child,
  body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .container > .stack > .row:first-child{
    display:block;
    padding:18px;
    border-radius:20px;
  }

  body.page-user-list .user-title-row .actions,
  body.page-user-create .user-title-row .actions,
  body.page-user-edit .user-title-row .actions,
  body.page-user-view .user-title-row .actions,
  body.page-material .material-title-row .actions,
  body.page-work-diary .work-diary-title-row .actions,
  body.page-site-list .container > .stack > .row:first-child .actions,
  body.page-site-create #siteCreateForm > .row:first-child .actions,
  body.page-site-edit form > .row:first-child .actions,
  body.page-site-view .container > .row:first-child .actions,
  body.page-estimate:not(.estimate-print-page) .estimate-form-stack > .row:first-child .actions,
  body.page-estimate:not(.estimate-print-page):not(.page-estimate-form):not(.page-estimate-view) .container > .stack > .row:first-child .actions{
    justify-content:flex-start;
    margin-top:12px;
  }
}

/* --- phase2 site / inspection card restore --- */
/* =========================================================
   COMMON CARD UI PHASE 2 - site / inspection management
   - 디자인 전용 보정: 저장/검색/삭제 로직 및 data-* 속성은 변경하지 않음
   ========================================================= */
body.page-site-list .container,
body.page-site-create .container,
body.page-site-edit .container,
body.page-site-view .container,
body.page-inspection-manage .container,
body.page-inspection-list .container,
body.page-inspection-create .container,
body.page-inspection-repair .container,
body.page-work-deadline .container{
  max-width: 1080px;
}

/* 상단 타이틀/액션 영역을 업무홈 스타일 카드로 통일 */
.page-site-list .container > .stack > .row:first-child,
.page-site-view .container > .stack > .row:first-child,
.page-site-create .container > form > .stack > .row:first-child,
.page-site-edit .container > form > .stack > .row:first-child,
.page-inspection-manage .container > .stack > .row:first-child,
.page-inspection-create .container > .stack > .row:first-child,
.page-work-deadline .container > .stack > .row:first-child{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 24px 26px;
  margin: 0 0 18px;
  border: 1px solid #cfe0fb;
  border-radius: 24px;
  background:
    radial-gradient(circle at 100% 0%, rgba(34,197,94,.12), transparent 34%),
    linear-gradient(135deg, #ffffff 0%, #f4f8ff 52%, #effcf5 100%);
  box-shadow: 0 18px 38px rgba(15,23,42,.08);
}

.page-site-list .container > .stack > .row:first-child::before,
.page-site-view .container > .stack > .row:first-child::before,
.page-site-create .container > form > .stack > .row:first-child::before,
.page-site-edit .container > form > .stack > .row:first-child::before,
.page-inspection-manage .container > .stack > .row:first-child::before,
.page-inspection-create .container > .stack > .row:first-child::before,
.page-work-deadline .container > .stack > .row:first-child::before{
  content: '업무 카드';
  display: block;
  margin-bottom: 8px;
  color: #2563eb;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: -.02em;
}

.page-site-list .container > .stack > .row:first-child > div:first-child,
.page-site-view .container > .stack > .row:first-child > div:first-child,
.page-site-create .container > form > .stack > .row:first-child > div:first-child,
.page-site-edit .container > form > .stack > .row:first-child > div:first-child,
.page-inspection-manage .container > .stack > .row:first-child > div:first-child,
.page-inspection-create .container > .stack > .row:first-child > div:first-child,
.page-work-deadline .container > .stack > .row:first-child > div:first-child{
  min-width: 0;
  flex: 1;
}

.page-site-list .container > .stack > .row:first-child h2,
.page-site-view .container > .stack > .row:first-child h2,
.page-site-create .container > form > .stack > .row:first-child h2,
.page-site-edit .container > form > .stack > .row:first-child h2,
.page-inspection-manage .container > .stack > .row:first-child h2,
.page-inspection-create .container > .stack > .row:first-child h2,
.page-work-deadline .container > .stack > .row:first-child h2{
  margin: 0;
  color: #061d46;
  font-size: 25px;
  font-weight: 950;
  letter-spacing: -.04em;
}

.page-site-list .container > .stack > .row:first-child p,
.page-site-view .container > .stack > .row:first-child p,
.page-site-create .container > form > .stack > .row:first-child p,
.page-site-edit .container > form > .stack > .row:first-child p,
.page-inspection-manage .container > .stack > .row:first-child p,
.page-inspection-create .container > .stack > .row:first-child p,
.page-work-deadline .container > .stack > .row:first-child p{
  margin: 8px 0 0;
  color: #466080;
  font-size: 13px;
  font-weight: 800;
}

.page-site-list .container > .stack > .row:first-child .actions,
.page-site-view .container > .stack > .row:first-child .actions,
.page-site-create .container > form > .stack > .row:first-child .actions,
.page-site-edit .container > form > .stack > .row:first-child .actions,
.page-inspection-manage .container > .stack > .row:first-child .actions,
.page-inspection-create .container > .stack > .row:first-child .actions,
.page-work-deadline .container > .stack > .row:first-child .actions{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}

/* 검색/필터 카드 분리감 강화 */
.page-site-list .container > .stack > .card:nth-of-type(1),
.page-work-deadline .deadline-head-card,
.page-inspection-list .container > .card:first-of-type,
.page-inspection-manage .container > .stack > .card:first-of-type,
.page-inspection-create .container > .stack > .card:first-of-type{
  border: 1px solid #d6e4f7;
  border-radius: 24px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  box-shadow: 0 16px 34px rgba(15,23,42,.07);
}

.page-site-list .container > .stack > .card:nth-of-type(1) .card-header,
.page-work-deadline .deadline-head-card .card-header,
.page-inspection-list .container > .card:first-of-type .card-header,
.page-inspection-manage .container > .stack > .card:first-of-type .card-header,
.page-inspection-create .container > .stack > .card:first-of-type .card-header{
  padding: 20px 22px 10px;
  border-bottom: 0;
}

.page-site-list .container > .stack > .card:nth-of-type(1) .card-body,
.page-inspection-list .container > .card:first-of-type .card-body,
.page-inspection-manage .container > .stack > .card:first-of-type .card-body,
.page-inspection-create .container > .stack > .card:first-of-type .card-body{
  padding: 18px 22px 22px;
}

.page-site-list .container > .stack > .card:nth-of-type(1) form,
.page-work-deadline .deadline-filter,
.page-inspection-manage form.stack,
.page-inspection-create form.stack{
  gap: 14px !important;
}

.page-site-list .container > .stack > .card:nth-of-type(1) form > div:first-child,
.page-work-deadline .deadline-filter-row{
  display: grid !important;
  grid-template-columns: 180px minmax(260px, 1fr) auto auto;
  gap: 12px !important;
  align-items: end;
}

.page-site-list .container > .stack > .card:nth-of-type(1) .input,
.page-work-deadline .deadline-head-card .input,
.page-inspection-manage .input,
.page-inspection-create .input,
.page-inspection-manage select,
.page-inspection-create select,
.page-inspection-manage textarea,
.page-inspection-create textarea{
  border: 1px solid #d9e6f7;
  border-radius: 15px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 10px 22px rgba(15,23,42,.04);
}

/* 대상처 등록/수정/상세 섹션 카드가 기존 CSS nth-of-type 미스매치로 안 먹는 부분 보정 */
.page-site-create #site-section-basic,
.page-site-edit #site-section-basic,
.page-site-view #site-section-basic,
.page-site-create #site-section-contract,
.page-site-edit #site-section-contract,
.page-site-view #site-section-contract,
.page-site-create #site-section-manager,
.page-site-edit #site-section-manager,
.page-site-view #site-section-manager,
.page-site-create #site-section-contacts,
.page-site-edit #site-section-contacts,
.page-site-view #site-section-contacts,
.page-site-create #site-section-buildings,
.page-site-edit #site-section-buildings,
.page-site-view #site-section-buildings{
  position: relative;
  overflow: hidden;
  border-radius: 24px !important;
  border: 1px solid #d6e4f7 !important;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%) !important;
  box-shadow: 0 16px 34px rgba(15,23,42,.07) !important;
}

.page-site-create #site-section-basic::before,
.page-site-edit #site-section-basic::before,
.page-site-view #site-section-basic::before,
.page-site-create #site-section-contract::before,
.page-site-edit #site-section-contract::before,
.page-site-view #site-section-contract::before,
.page-site-create #site-section-manager::before,
.page-site-edit #site-section-manager::before,
.page-site-view #site-section-manager::before,
.page-site-create #site-section-contacts::before,
.page-site-edit #site-section-contacts::before,
.page-site-view #site-section-contacts::before,
.page-site-create #site-section-buildings::before,
.page-site-edit #site-section-buildings::before,
.page-site-view #site-section-buildings::before{
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: linear-gradient(180deg, #3b82f6, #22c55e);
  opacity: .95;
}

.page-site-create #site-section-basic,
.page-site-edit #site-section-basic,
.page-site-view #site-section-basic{
  background:
    radial-gradient(circle at 0% 0%, rgba(34,197,94,.12), transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #f8fffb 100%) !important;
}
.page-site-create #site-section-contract,
.page-site-edit #site-section-contract,
.page-site-view #site-section-contract{
  background:
    radial-gradient(circle at 0% 0%, rgba(245,158,11,.12), transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #fffbf2 100%) !important;
}
.page-site-create #site-section-manager,
.page-site-edit #site-section-manager,
.page-site-view #site-section-manager{
  background:
    radial-gradient(circle at 0% 0%, rgba(59,130,246,.12), transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #f5f9ff 100%) !important;
}
.page-site-create #site-section-contacts,
.page-site-edit #site-section-contacts,
.page-site-view #site-section-contacts{
  background:
    radial-gradient(circle at 0% 0%, rgba(168,85,247,.10), transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #fbf7ff 100%) !important;
}
.page-site-create #site-section-buildings,
.page-site-edit #site-section-buildings,
.page-site-view #site-section-buildings{
  background:
    radial-gradient(circle at 0% 0%, rgba(6,182,212,.11), transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #f4fdff 100%) !important;
}

/* 점검관리 기존 페이지도 카드 톤 통일 */
.page-inspection-manage .card,
.page-inspection-list .card,
.page-inspection-create .card,
.page-inspection-repair .card,
.page-work-deadline .deadline-step-card,
.page-work-deadline .workflow-case-card{
  border: 1px solid #d6e4f7;
  border-radius: 24px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  box-shadow: 0 16px 34px rgba(15,23,42,.07);
}

.page-inspection-manage .card-header,
.page-inspection-list .card-header,
.page-inspection-create .card-header,
.page-inspection-repair .card-header,
.page-work-deadline .deadline-step-card .card-header{
  border-bottom: 1px solid #e8eef8;
  padding: 18px 22px;
}

.page-inspection-manage .card-title,
.page-inspection-list .card-title,
.page-inspection-create .card-title,
.page-inspection-repair .card-title,
.page-work-deadline .card-title{
  color: #061d46;
  font-weight: 950;
  letter-spacing: -.03em;
}

@media(max-width: 860px){
  .page-site-list .container > .stack > .row:first-child,
  .page-site-view .container > .stack > .row:first-child,
  .page-site-create .container > form > .stack > .row:first-child,
  .page-site-edit .container > form > .stack > .row:first-child,
  .page-inspection-manage .container > .stack > .row:first-child,
  .page-inspection-create .container > .stack > .row:first-child,
  .page-work-deadline .container > .stack > .row:first-child{
    display: block;
    padding: 20px;
  }
  .page-site-list .container > .stack > .row:first-child .actions,
  .page-site-view .container > .stack > .row:first-child .actions,
  .page-site-create .container > form > .stack > .row:first-child .actions,
  .page-site-edit .container > form > .stack > .row:first-child .actions,
  .page-inspection-manage .container > .stack > .row:first-child .actions,
  .page-inspection-create .container > .stack > .row:first-child .actions,
  .page-work-deadline .container > .stack > .row:first-child .actions{
    margin-top: 14px;
    justify-content: flex-start;
  }
  .page-site-list .container > .stack > .card:nth-of-type(1) form > div:first-child,
  .page-work-deadline .deadline-filter-row{
    grid-template-columns: 1fr !important;
  }
}

/* --- user management card restore --- */
/* =========================================================
   USER MANAGEMENT CARD DESIGN FIX v3
   - 직원관리 페이지 상단/검색/상세/폼 카드 디자인 통일
   - PHP/저장/삭제/검색 로직 변경 없음
   ========================================================= */
body.page-user-list,
body.page-user-create,
body.page-user-edit,
body.page-user-view{
  background:
    radial-gradient(circle at 20% 0%, rgba(47,109,231,.10), transparent 34%),
    linear-gradient(180deg,#f7fbff 0%,#eef5ff 100%);
}

body.page-user-list .user-page-wrap,
body.page-user-create .user-page-wrap,
body.page-user-edit .user-page-wrap,
body.page-user-view .user-page-wrap{
  width:min(1040px, calc(100% - 32px)) !important;
  max-width:1040px !important;
  margin:0 auto !important;
  padding:16px 0 56px !important;
}

body.page-user-list .user-title-row,
body.page-user-create .user-title-row,
body.page-user-edit .user-title-row,
body.page-user-view .user-title-row{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:18px !important;
  margin:0 0 16px !important;
  padding:22px 24px !important;
  border:1px solid #cfe0ff !important;
  border-radius:24px !important;
  background:linear-gradient(135deg, rgba(255,255,255,.96) 0%, rgba(244,249,255,.96) 62%, rgba(236,253,245,.92) 100%) !important;
  box-shadow:0 18px 44px rgba(15,42,95,.08) !important;
}

body.page-user-list .user-title-row h2,
body.page-user-create .user-title-row h2,
body.page-user-edit .user-title-row h2,
body.page-user-view .user-title-row h2{
  display:inline-flex !important;
  align-items:center !important;
  min-height:42px !important;
  margin:0 !important;
  padding:8px 15px !important;
  border:1px solid #a9c9ff !important;
  border-radius:999px !important;
  background:linear-gradient(180deg,#ffffff 0%,#eef5ff 100%) !important;
  box-shadow:0 10px 24px rgba(47,109,231,.12) !important;
  color:#061d46 !important;
  font-size:22px !important;
  line-height:1 !important;
  font-weight:950 !important;
  letter-spacing:-.5px !important;
}

body.page-user-list .user-title-row p,
body.page-user-create .user-title-row p,
body.page-user-edit .user-title-row p,
body.page-user-view .user-title-row p{
  margin:8px 0 0 !important;
  color:#52627b !important;
  font-size:13px !important;
  font-weight:850 !important;
  line-height:1.45 !important;
}

body.page-user-list .user-title-row .actions,
body.page-user-create .user-title-row .actions,
body.page-user-edit .user-title-row .actions,
body.page-user-view .user-title-row .actions{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  margin:0 !important;
}

body.page-user-list .user-summary-grid{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:12px !important;
  margin:0 0 16px !important;
}

body.page-user-list .user-summary-card{
  min-height:104px !important;
  padding:17px 18px !important;
  border:1px solid #cfe0ff !important;
  border-radius:20px !important;
  background:rgba(255,255,255,.94) !important;
  box-shadow:0 16px 36px rgba(15,42,95,.07) !important;
}

body.page-user-list .user-summary-card span{
  color:#52627b !important;
  font-size:13px !important;
  font-weight:900 !important;
}
body.page-user-list .user-summary-card b{
  margin-top:8px !important;
  color:#061d46 !important;
  font-size:28px !important;
  font-weight:950 !important;
}

body.page-user-list .user-filter-card,
body.page-user-list .user-list-card,
body.page-user-create .user-form-card,
body.page-user-edit .user-form-card,
body.page-user-view .user-profile-card,
body.page-user-view .card{
  border:1px solid #cfe0ff !important;
  border-radius:22px !important;
  background:rgba(255,255,255,.94) !important;
  box-shadow:0 18px 44px rgba(15,42,95,.08) !important;
}

body.page-user-list .user-filter-card{
  padding:18px !important;
  margin-bottom:16px !important;
}
body.page-user-list .user-filter-form{
  display:grid !important;
  grid-template-columns:minmax(260px,1fr) 100px auto !important;
  gap:10px !important;
  align-items:end !important;
}
body.page-user-list .user-filter-form label,
body.page-user-create .user-form-grid label,
body.page-user-edit .user-form-grid label{
  display:block !important;
  margin:0 0 7px !important;
  color:#233b6c !important;
  font-size:12px !important;
  font-weight:950 !important;
}

body.page-user-create .user-form,
body.page-user-edit .user-form{
  gap:16px !important;
}
body.page-user-create .user-form-card,
body.page-user-edit .user-form-card{
  padding:20px !important;
  overflow:hidden !important;
}
body.page-user-create .user-form-card .card-header,
body.page-user-edit .user-form-card .card-header,
body.page-user-view .card .card-header{
  padding:0 0 12px !important;
  margin:0 0 16px !important;
  border-bottom:1px solid #e2ecfb !important;
}
body.page-user-create .user-form-card .card-title,
body.page-user-edit .user-form-card .card-title,
body.page-user-view .card .card-title,
body.page-user-list .user-list-card .card-title{
  color:#061d46 !important;
  font-size:16px !important;
  font-weight:950 !important;
}
body.page-user-create .user-form-grid,
body.page-user-edit .user-form-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:14px 16px !important;
}
body.page-user-create .user-form-grid .full,
body.page-user-edit .user-form-grid .full{
  grid-column:1 / -1 !important;
}
body.page-user-create .user-form select,
body.page-user-edit .user-form select,
body.page-user-list .user-filter-form select{
  width:100% !important;
  min-height:44px !important;
  border:1px solid #d6e5fb !important;
  border-radius:14px !important;
  background:#fff !important;
  color:#061d46 !important;
  font-weight:850 !important;
  padding:0 12px !important;
  box-shadow:0 8px 22px rgba(15,42,95,.04) !important;
}
body.page-user-create .user-addr,
body.page-user-edit .user-addr{
  padding:14px !important;
  border:1px solid #e2ecfb !important;
  border-radius:18px !important;
  background:linear-gradient(180deg,#fff 0%,#f8fbff 100%) !important;
}
body.page-user-create .user-form-actions,
body.page-user-edit .user-form-actions{
  justify-content:flex-end !important;
  padding:4px 0 14px !important;
  gap:8px !important;
}

body.page-user-view .user-profile-card{
  padding:22px !important;
}
body.page-user-view .user-profile-head{
  display:flex !important;
  align-items:center !important;
  gap:16px !important;
}
body.page-user-view .user-profile-main h3{
  margin:0 0 8px !important;
  color:#061d46 !important;
  font-size:26px !important;
  font-weight:950 !important;
}
body.page-user-view .user-profile-sub{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px 10px !important;
  color:#52627b !important;
  font-size:13px !important;
  font-weight:850 !important;
}
body.page-user-view .user-profile-badges{
  margin-left:auto !important;
  display:flex !important;
  flex-wrap:wrap !important;
  justify-content:flex-end !important;
  gap:6px !important;
}
body.page-user-view .user-kv{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:10px !important;
}
body.page-user-view .user-kv .kv-item{
  border:1px solid #e2ecfb !important;
  border-radius:16px !important;
  background:#fff !important;
  padding:13px 14px !important;
}
body.page-user-view .user-kv .kv-item.full{
  grid-column:1 / -1 !important;
}

@media(max-width:760px){
  body.page-user-list .user-page-wrap,
  body.page-user-create .user-page-wrap,
  body.page-user-edit .user-page-wrap,
  body.page-user-view .user-page-wrap{
    width:calc(100% - 20px) !important;
    padding-bottom:40px !important;
  }
  body.page-user-list .user-title-row,
  body.page-user-create .user-title-row,
  body.page-user-edit .user-title-row,
  body.page-user-view .user-title-row{
    align-items:flex-start !important;
    flex-direction:column !important;
    padding:18px !important;
  }
  body.page-user-list .user-title-row .actions,
  body.page-user-create .user-title-row .actions,
  body.page-user-edit .user-title-row .actions,
  body.page-user-view .user-title-row .actions{
    width:100% !important;
    justify-content:flex-start !important;
  }
  body.page-user-list .user-summary-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  body.page-user-list .user-filter-form,
  body.page-user-create .user-form-grid,
  body.page-user-edit .user-form-grid,
  body.page-user-view .user-kv{
    grid-template-columns:1fr !important;
  }
  body.page-user-view .user-profile-head{
    align-items:flex-start !important;
    flex-direction:column !important;
  }
  body.page-user-view .user-profile-badges{
    margin-left:0 !important;
    justify-content:flex-start !important;
  }
}


/* 2026-07 견적세부내역서 컬럼 폭 조정
   - 품명/규격/단위 축소
   - 계/비고 확대
   colgroup 기준이라 화면, 상세, 출력, JS 미리보기 모두 동일하게 적용된다. */
.page-estimate table.estimate-doc-table.estimate-detail-table,
body.page-estimate table.estimate-doc-table.estimate-detail-table,
body.estimate-print-page table.estimate-doc-table.estimate-detail-table{
  table-layout:fixed !important;
}
.page-estimate table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-name,
body.page-estimate table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-name,
body.estimate-print-page table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-name{width:13% !important;}
.page-estimate table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-spec,
body.page-estimate table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-spec,
body.estimate-print-page table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-spec{width:10% !important;}
.page-estimate table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-unit,
body.page-estimate table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-unit,
body.estimate-print-page table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-unit{width:5% !important;}
.page-estimate table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-qty,
body.page-estimate table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-qty,
body.estimate-print-page table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-qty{width:6% !important;}
.page-estimate table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-mat-unit,
body.page-estimate table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-mat-unit,
body.estimate-print-page table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-mat-unit{width:9% !important;}
.page-estimate table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-mat-amount,
body.page-estimate table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-mat-amount,
body.estimate-print-page table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-mat-amount{width:11% !important;}
.page-estimate table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-labor-unit,
body.page-estimate table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-labor-unit,
body.estimate-print-page table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-labor-unit{width:9% !important;}
.page-estimate table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-labor-amount,
body.page-estimate table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-labor-amount,
body.estimate-print-page table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-labor-amount{width:11% !important;}
.page-estimate table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-total,
body.page-estimate table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-total,
body.estimate-print-page table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-total{width:12% !important;}
.page-estimate table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-memo,
body.page-estimate table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-memo,
body.estimate-print-page table.estimate-doc-table.estimate-detail-table col.estimate-detail-col-memo{width:14% !important;}

/* 기존 nth-child 고정폭보다 colgroup을 우선 적용 */
.page-estimate table.estimate-doc-table.estimate-detail-table th,
.page-estimate table.estimate-doc-table.estimate-detail-table td,
body.estimate-print-page table.estimate-doc-table.estimate-detail-table th,
body.estimate-print-page table.estimate-doc-table.estimate-detail-table td{
  width:auto !important;
  word-break:keep-all !important;
  overflow-wrap:anywhere !important;
}
.page-estimate table.estimate-doc-table.estimate-detail-table td:nth-child(9),
body.estimate-print-page table.estimate-doc-table.estimate-detail-table td:nth-child(9){
  white-space:nowrap !important;
}

/* work case manage popup v1 */
.page-work-case-manage-popup{
  padding:18px !important;
  background:#eef5ff !important;
}

.page-work-case-manage-popup .work-manage-popup-wrap{
  width:min(1240px, 100%) !important;
  margin:0 auto !important;
  display:grid !important;
  gap:14px !important;
}

.page-work-case-manage-popup .work-manage-popup-head{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:16px !important;
  padding:18px 20px !important;
  border:1px solid #cfe0f6 !important;
  border-radius:24px !important;
  background:linear-gradient(135deg,#fff 0%,#f3fbff 100%) !important;
  box-shadow:0 18px 38px rgba(28,54,89,.08) !important;
}

.page-work-case-manage-popup .work-manage-popup-head h2{
  margin:4px 0 !important;
  color:#062758 !important;
  font-size:24px !important;
  font-weight:950 !important;
}

.page-work-case-manage-popup .work-manage-card{
  border-radius:24px !important;
  border-color:#cfe0f6 !important;
  box-shadow:0 16px 34px rgba(28,54,89,.07) !important;
}

.page-work-case-manage-popup .work-manage-step-grid{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0,1fr)) !important;
  gap:12px !important;
}

.page-work-case-manage-popup .work-manage-step-card{
  padding:14px !important;
  border:1px solid #d4e4f7 !important;
  border-radius:20px !important;
  background:#fff !important;
  display:grid !important;
  gap:12px !important;
}

.page-work-case-manage-popup .work-manage-step-card.is-done{
  background:#f5fff8 !important;
  border-color:#aee6bd !important;
}

.page-work-case-manage-popup .work-manage-step-head{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:12px !important;
}

.page-work-case-manage-popup .work-manage-step-head strong{
  display:block !important;
  color:#062758 !important;
  font-size:16px !important;
  font-weight:950 !important;
}

.page-work-case-manage-popup .work-manage-step-head p{
  margin:4px 0 0 !important;
  color:#587191 !important;
  font-size:12px !important;
  font-weight:800 !important;
  line-height:1.35 !important;
}

.page-work-case-manage-popup .work-manage-step-status{
  flex:0 0 auto !important;
  text-align:right !important;
}

.page-work-case-manage-popup .work-manage-action-form{
  display:grid !important;
  gap:7px !important;
  padding:10px !important;
  border:1px solid #e1ebf8 !important;
  border-radius:16px !important;
  background:#f8fbff !important;
}

.page-work-case-manage-popup .work-manage-form-line{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  gap:8px !important;
  align-items:center !important;
}

.page-work-case-manage-popup .work-manage-double-actions{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0,1fr)) !important;
  gap:8px !important;
}

.page-work-case-manage-popup .work-manage-unavailable{
  padding:10px 12px !important;
  border:1px dashed #cbd9ec !important;
  border-radius:16px !important;
  background:#f7faff !important;
  color:#6c7f9a !important;
  font-size:12px !important;
  font-weight:850 !important;
}

.page-work-case-manage-popup .work-manage-detail-list .work-case-detail-row{
  background:#fff !important;
}

@media (max-width:900px){
  .page-work-case-manage-popup .work-manage-popup-head{
    flex-direction:column !important;
  }
  .page-work-case-manage-popup .work-manage-step-grid,
  .page-work-case-manage-popup .work-manage-double-actions{
    grid-template-columns:1fr !important;
  }
}

/* work case manage popup vertical flow + compact edit form v2 */
.page-work-case-manage-popup .work-manage-step-grid{
  display:block !important;
}

.page-work-case-manage-popup .work-manage-flow-layout{
  display:grid !important;
  grid-template-columns:minmax(0, 1fr) minmax(260px, 320px) !important;
  gap:16px !important;
  align-items:stretch !important;
}

.page-work-case-manage-popup .work-manage-flow-main{
  position:relative !important;
  display:grid !important;
  gap:10px !important;
  counter-reset:workManageStep !important;
  padding-left:8px !important;
}

.page-work-case-manage-popup .work-manage-flow-main::before{
  content:"" !important;
  position:absolute !important;
  left:28px !important;
  top:22px !important;
  bottom:22px !important;
  width:2px !important;
  border-radius:99px !important;
  background:linear-gradient(180deg,#2f6df6 0%,#9bd7af 100%) !important;
  opacity:.28 !important;
}

.page-work-case-manage-popup .work-manage-flow-main .work-manage-step-card{
  position:relative !important;
  min-height:0 !important;
  padding:13px 14px 13px 62px !important;
  border-radius:18px !important;
  box-shadow:0 8px 20px rgba(28,54,89,.045) !important;
}

.page-work-case-manage-popup .work-manage-flow-main .work-manage-step-card::before{
  counter-increment:workManageStep !important;
  content:counter(workManageStep) !important;
  position:absolute !important;
  left:14px !important;
  top:14px !important;
  width:30px !important;
  height:30px !important;
  border-radius:999px !important;
  display:grid !important;
  place-items:center !important;
  border:1px solid #bfd5f7 !important;
  background:#eef5ff !important;
  color:#0752ca !important;
  font-size:13px !important;
  font-weight:950 !important;
  box-shadow:0 6px 14px rgba(47,109,246,.10) !important;
  z-index:1 !important;
}

.page-work-case-manage-popup .work-manage-flow-main .work-manage-step-card.is-done::before{
  content:"✓" !important;
  border-color:#8ee0ab !important;
  background:#ebfff2 !important;
  color:#07843e !important;
}

.page-work-case-manage-popup .work-manage-final-panel{
  align-self:end !important;
  display:grid !important;
  gap:10px !important;
  padding:14px !important;
  border:1px solid #b9d0f8 !important;
  border-radius:22px !important;
  background:linear-gradient(180deg,#f7fbff 0%,#eef6ff 100%) !important;
  box-shadow:0 14px 32px rgba(28,54,89,.08) !important;
}

.page-work-case-manage-popup .work-manage-final-title{
  display:inline-flex !important;
  width:fit-content !important;
  align-items:center !important;
  min-height:26px !important;
  padding:4px 10px !important;
  border-radius:999px !important;
  border:1px solid #bfd5f7 !important;
  background:#fff !important;
  color:#0752ca !important;
  font-size:12px !important;
  font-weight:950 !important;
}

.page-work-case-manage-popup .work-manage-final-panel .work-manage-step-card{
  min-height:150px !important;
  align-content:center !important;
  padding:16px !important;
  border-radius:20px !important;
  border-color:#9ec4ff !important;
  background:#fff !important;
}

.page-work-case-manage-popup .work-manage-final-panel .work-manage-step-card.is-done{
  border-color:#8ee0ab !important;
  background:linear-gradient(180deg,#f3fff7 0%,#fff 100%) !important;
}

.page-work-case-manage-popup .work-manage-step-head{
  align-items:center !important;
}

.page-work-case-manage-popup .work-manage-step-head p{
  max-width:520px !important;
}

.page-work-case-manage-popup .work-manage-action-form{
  width:fit-content !important;
  max-width:100% !important;
  padding:8px !important;
  gap:6px !important;
}

.page-work-case-manage-popup .work-manage-form-line{
  grid-template-columns:140px auto !important;
  justify-content:start !important;
}

.page-work-case-manage-popup .work-manage-action-form input[type="date"]{
  width:140px !important;
  min-width:140px !important;
}

.page-work-case-manage-popup .work-manage-action-form input[name="memo"]{
  width:260px !important;
  max-width:100% !important;
}

.page-work-case-manage-popup .work-manage-double-actions{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:flex-start !important;
  gap:8px !important;
}

.page-work-case-manage-popup .work-manage-detail-list{
  display:grid !important;
  gap:10px !important;
}

.page-work-case-manage-popup .work-manage-detail-list .work-case-detail-row{
  padding:14px !important;
  border:1px solid #d6e5f8 !important;
  border-radius:18px !important;
  background:#fff !important;
  box-shadow:0 8px 20px rgba(28,54,89,.04) !important;
}

.page-work-case-manage-popup .work-manage-detail-list .work-case-detail-head{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:10px !important;
  align-items:start !important;
}

.page-work-case-manage-popup .work-manage-detail-list .work-case-detail-title{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  gap:7px !important;
}

.page-work-case-manage-popup .work-manage-detail-list .work-case-detail-title strong{
  color:#062758 !important;
  font-size:16px !important;
  font-weight:950 !important;
}

.page-work-case-manage-popup .work-manage-detail-list .work-case-detail-actions{
  display:grid !important;
  grid-template-columns:minmax(0, 1fr) auto !important;
  gap:8px !important;
  align-items:start !important;
}

.page-work-case-manage-popup .work-case-detail-edit-form{
  display:grid !important;
  grid-template-columns:145px minmax(160px, 320px) 72px !important;
  gap:8px !important;
  align-items:center !important;
  max-width:560px !important;
}

.page-work-case-manage-popup .work-case-detail-edit-form .detail-event-date{
  width:145px !important;
  min-width:145px !important;
}

.page-work-case-manage-popup .work-case-detail-edit-form .detail-event-memo{
  width:100% !important;
  max-width:320px !important;
}

.page-work-case-manage-popup .work-case-detail-delete-form{
  display:flex !important;
  justify-content:flex-end !important;
}

.page-work-case-manage-popup .work-case-detail-deadline{
  margin-top:8px !important;
  padding:9px 10px !important;
  border:1px solid #e2ebf7 !important;
  border-radius:14px !important;
  background:#f8fbff !important;
  display:flex !important;
  flex-wrap:wrap !important;
  gap:7px 10px !important;
  align-items:center !important;
  color:#334b68 !important;
  font-size:12px !important;
  font-weight:850 !important;
}

.page-work-case-manage-popup .work-case-detail-deadline .detail-deadline-name{
  color:#062758 !important;
  font-weight:950 !important;
}

@media (max-width:980px){
  .page-work-case-manage-popup .work-manage-flow-layout{
    grid-template-columns:1fr !important;
  }
  .page-work-case-manage-popup .work-manage-final-panel{
    align-self:stretch !important;
  }
}

@media (max-width:720px){
  .page-work-case-manage-popup{
    padding:10px !important;
  }
  .page-work-case-manage-popup .work-manage-flow-main::before{
    left:24px !important;
  }
  .page-work-case-manage-popup .work-manage-flow-main .work-manage-step-card{
    padding-left:56px !important;
  }
  .page-work-case-manage-popup .work-manage-action-form,
  .page-work-case-manage-popup .work-manage-action-form input[name="memo"]{
    width:100% !important;
  }
  .page-work-case-manage-popup .work-manage-form-line,
  .page-work-case-manage-popup .work-case-detail-edit-form,
  .page-work-case-manage-popup .work-manage-detail-list .work-case-detail-actions{
    grid-template-columns:1fr !important;
  }
  .page-work-case-manage-popup .work-manage-action-form input[type="date"],
  .page-work-case-manage-popup .work-case-detail-edit-form .detail-event-date,
  .page-work-case-manage-popup .work-case-detail-edit-form .detail-event-memo{
    width:100% !important;
    max-width:none !important;
  }
}

/* 2026-07-10 patch: 업무홈 점검일정 미등록 업체 6건 카드 */
.dashboard-unscheduled-panel .dashboard-panel-head p{
  word-break:keep-all;
}
.dashboard-unscheduled-list{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
}
.dashboard-unscheduled-list > .dashboard-more-details{
  grid-column:1 / -1;
}
.dashboard-unscheduled-more > .dashboard-more-list{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
}
.dashboard-unscheduled-card{
  display:grid;
  grid-template-columns:auto minmax(0, 1fr);
  align-items:center;
  gap:11px;
  min-width:0;
  min-height:82px;
  padding:11px 13px;
  border:1px solid #d7e8ff;
  border-radius:16px;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
  color:#0f172a;
  text-decoration:none;
  box-shadow:0 8px 18px rgba(37,99,235,.06);
  transition:transform .12s ease, border-color .12s ease, box-shadow .12s ease;
}
.dashboard-unscheduled-card:hover{
  transform:translateY(-1px);
  border-color:#60a5fa;
  box-shadow:0 12px 24px rgba(37,99,235,.12);
}
.dashboard-unscheduled-content{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  gap:3px;
}
.dashboard-unscheduled-card b{
  display:block;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#061d46;
  font-size:14px;
  line-height:1.25;
  font-weight:950;
}
.dashboard-unscheduled-approval,
.dashboard-unscheduled-manager{
  display:block;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-style:normal;
  font-size:11px;
  line-height:1.25;
  font-weight:800;
}
.dashboard-unscheduled-approval{
  color:#64748b;
}
.dashboard-unscheduled-manager{
  color:#2563eb;
}
.dashboard-unscheduled-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:56px;
  height:27px;
  padding:0 9px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  border:1px solid #c7dcff;
  color:#1d4ed8;
  background:#eff6ff;
}
.dashboard-unscheduled-badge.is-comp{
  color:#c2410c;
  border-color:#fed7aa;
  background:#fff7ed;
}
.dashboard-unscheduled-badge.is-oper{
  color:#111827;
  border-color:#d1d5db;
  background:#f8fafc;
}
.uns-row-meta{
  display:inline-flex;
  align-items:center;
  min-width:0;
  color:#64748b;
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
}
@media (max-width:900px){
  .dashboard-unscheduled-list,
  .dashboard-unscheduled-more > .dashboard-more-list{
    grid-template-columns:1fr;
  }
}

/* 업무일지 목록/등록 정리: 상태 컬럼 제거, 결재상태 중심 정렬 */
.page-work-diary-list .work-diary-table .wd-col-date{width:14% !important;}
.page-work-diary-list .work-diary-table .wd-col-sites{width:47% !important;}
.page-work-diary-list .work-diary-table .wd-col-approval{width:12% !important;}
.page-work-diary-list .work-diary-table .wd-col-companion{width:17% !important;}
.page-work-diary-list .work-diary-table .wd-col-actions{width:10% !important;}
.page-work-diary-list .work-diary-table th,
.page-work-diary-list .work-diary-table td{vertical-align:middle;}
.page-work-diary-list .work-diary-table th.center,
.page-work-diary-list .work-diary-table td.center{text-align:center;}
.page-work-diary-form .work-diary-form-grid-daily{
  grid-template-columns:minmax(150px, .9fr) minmax(260px, 1.7fr) minmax(260px, 1.7fr) !important;
  align-items:end;
}
.page-work-diary-form .work-diary-form-grid-daily > input[type="hidden"]{display:none !important;}
@media (max-width: 900px){
  .page-work-diary-form .work-diary-form-grid-daily{grid-template-columns:1fr !important;}
}

/* work diary free target + visible content input hotfix 20260710 */
.page-work-diary .work-diary-item-content-inline{
  display:block !important;
  padding:0 12px 12px !important;
  margin:0 !important;
}
.page-work-diary .work-diary-item-content-inline > span{
  display:block !important;
  margin-bottom:7px !important;
  color:#334155 !important;
  font-size:12px !important;
  font-weight:950 !important;
}
.page-work-diary .work-diary-item-content-inline textarea{
  width:100% !important;
  min-height:62px !important;
  resize:vertical !important;
}
.page-work-diary .work-diary-item-detail{
  grid-template-columns:1fr 1fr !important;
  padding:12px !important;
}
.page-work-diary .work-diary-item-detail label{
  min-width:0 !important;
}
.page-work-diary .work-diary-item-compact-grid [data-work-diary-site-search]::placeholder{
  color:#94a3b8 !important;
}
@media(max-width:760px){
  .page-work-diary .work-diary-item-detail{
    grid-template-columns:1fr !important;
  }
}

/* 점검관리 상태변경: 새로고침 없이 처리된 항목 표시 v20260710 */
.page-work-deadline-dashboard .workflow-step-row.is-inline-processed,
.page-work-case-manage-popup .work-manage-step-card.is-inline-processed{
  border-color:#86d7a2 !important;
  background:linear-gradient(180deg,#f4fff8 0%,#ffffff 100%) !important;
  box-shadow:0 8px 20px rgba(22,163,74,.10) !important;
}
.page-work-deadline-dashboard form.is-inline-saved,
.page-work-case-manage-popup form.is-inline-saved{
  border-color:#bbf7d0 !important;
  background:#f0fdf4 !important;
}
.page-work-deadline-dashboard form.is-inline-saved .input,
.page-work-case-manage-popup form.is-inline-saved .input{
  color:#64748b !important;
  background:#f8fafc !important;
}
.workflow-inline-processed-badge{
  display:inline-flex !important;
  align-items:center !important;
  gap:7px !important;
  min-height:30px !important;
  padding:5px 10px !important;
  border:1px solid #86efac !important;
  border-radius:999px !important;
  background:#ecfdf5 !important;
  color:#166534 !important;
  white-space:nowrap !important;
}
.workflow-inline-processed-badge em{
  font-style:normal !important;
  font-size:12px !important;
  font-weight:950 !important;
}
.workflow-inline-processed-badge b{
  font-size:12px !important;
  font-weight:900 !important;
}
.work-inline-saved-notice{
  margin:7px 0 0 !important;
  padding:8px 10px !important;
  border-radius:12px !important;
  font-size:12px !important;
  font-weight:900 !important;
}

/* 업무일지 구분별 연결입력/자재사용 배치 보정 20260710 */
.page-work-diary-form .work-diary-item-compact-grid{
  grid-template-columns:130px minmax(220px,1.2fr) 120px minmax(210px,.9fr) !important;
  align-items:start !important;
}
.page-work-diary-form .work-diary-conditional-field[hidden]{
  display:none !important;
}
.page-work-diary-form .work-diary-type-select-field{grid-column:1 / 2 !important;}
.page-work-diary-form .work-diary-site-field{grid-column:2 / 3 !important;}
.page-work-diary-form .work-diary-status-field{grid-column:3 / 4 !important;}
.page-work-diary-form .work-diary-check-field{grid-column:4 / 5 !important;}
.page-work-diary-form .work-diary-schedule-field,
.page-work-diary-form .work-diary-estimate-field{
  grid-column:1 / 4 !important;
  min-width:0 !important;
}
.page-work-diary-form .work-diary-material-form-field{
  grid-column:4 / 5 !important;
  position:relative !important;
  min-width:0 !important;
}
.page-work-diary-form .work-diary-material-form-field > span{
  display:block !important;
  margin-bottom:6px !important;
  color:#334155 !important;
  font-size:12px !important;
  font-weight:950 !important;
}
.page-work-diary-form .work-diary-material-form-control{
  display:flex !important;
  align-items:center !important;
  min-height:42px !important;
  gap:8px !important;
}
.page-work-diary-form .work-diary-material-form-control .btn{
  max-width:100% !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
.page-work-diary-form .work-diary-material-form-help{
  display:flex !important;
  align-items:center !important;
  min-height:42px !important;
  color:#64748b !important;
  font-size:12px !important;
  font-weight:850 !important;
  line-height:1.4 !important;
}
@media(max-width:1000px){
  .page-work-diary-form .work-diary-type-select-field,
  .page-work-diary-form .work-diary-status-field{grid-column:1 / 2 !important;}
  .page-work-diary-form .work-diary-site-field,
  .page-work-diary-form .work-diary-check-field{grid-column:2 / 3 !important;}
  .page-work-diary-form .work-diary-schedule-field,
  .page-work-diary-form .work-diary-estimate-field,
  .page-work-diary-form .work-diary-material-form-field{grid-column:1 / -1 !important;}
}
@media(max-width:760px){
  .page-work-diary-form .work-diary-item-compact-grid{
    grid-template-columns:1fr !important;
  }
  .page-work-diary-form .work-diary-type-select-field,
  .page-work-diary-form .work-diary-site-field,
  .page-work-diary-form .work-diary-status-field,
  .page-work-diary-form .work-diary-check-field,
  .page-work-diary-form .work-diary-schedule-field,
  .page-work-diary-form .work-diary-estimate-field,
  .page-work-diary-form .work-diary-material-form-field{
    grid-column:1 / -1 !important;
  }
}

/* =========================================================
   견적 품목 입력행 간소화 + 업무일지 작성 중 자재입력 20260710
   ========================================================= */

/* 견적서 품명/규격 폭을 줄이고 관리 버튼을 한 줄에 배치 */
body.page-estimate-form .estimate-form-stack,
body.estimate-popup-body.page-estimate-form .estimate-form-stack,
body.page-estimate-form .estimate-form-card,
body.estimate-popup-body.page-estimate-form .estimate-form-card{
  width:min(1380px, calc(100vw - 24px)) !important;
  max-width:1380px !important;
}

body.page-estimate-form .estimate-item-row,
body.estimate-popup-body.page-estimate-form .estimate-item-row{
  grid-template-columns:
    minmax(145px, 1.15fr)
    minmax(120px, .95fr)
    52px
    54px
    88px
    94px
    88px
    94px
    90px
    minmax(90px, .72fr)
    150px !important;
  min-width:0 !important;
  gap:5px !important;
  align-items:center !important;
}

.page-estimate .estimate-item-memo-cell{
  display:block !important;
  min-width:0 !important;
}

.page-estimate .estimate-item-action-cell{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:4px !important;
  min-width:0 !important;
  white-space:nowrap !important;
}

.page-estimate .estimate-item-action-cell .estimate-item-source-badge{
  min-width:30px !important;
  min-height:26px !important;
  padding:3px 6px !important;
  justify-content:center !important;
  font-size:10px !important;
}

.page-estimate .estimate-item-action-cell .btn.tiny,
.page-estimate .estimate-item-action-cell .estimate-row-delete-btn,
.page-estimate .estimate-item-action-cell [data-estimate-remove-row]{
  width:auto !important;
  min-width:34px !important;
  max-width:none !important;
  height:30px !important;
  min-height:30px !important;
  padding:0 7px !important;
  border-radius:9px !important;
  font-size:11px !important;
  line-height:1 !important;
}

.page-estimate .estimate-item-action-cell [hidden]{
  display:none !important;
}

body.page-estimate-form .estimate-item-header > span:last-child,
body.estimate-popup-body.page-estimate-form .estimate-item-header > span:last-child{
  text-align:center !important;
}

@media(max-width:1050px){
  body.page-estimate-form .estimate-items,
  body.estimate-popup-body.page-estimate-form .estimate-items{
    overflow-x:auto !important;
  }
  body.page-estimate-form .estimate-item-row,
  body.estimate-popup-body.page-estimate-form .estimate-item-row{
    min-width:1040px !important;
    grid-template-columns:155px 130px 52px 54px 88px 94px 88px 94px 90px 100px 150px !important;
  }
}

/* 업무일지의 상태와 견적/수금 체크를 같은 첫 줄에 고정 */
.page-work-diary-form .work-diary-item-compact-grid{
  grid-template-columns:130px minmax(220px,1.2fr) 118px 150px !important;
  align-items:start !important;
}
.page-work-diary-form .work-diary-status-field{
  grid-column:3 / 4 !important;
  grid-row:1 !important;
}
.page-work-diary-form .work-diary-check-field{
  grid-column:4 / 5 !important;
  grid-row:1 !important;
}
.page-work-diary-form .work-diary-check-field > span{
  display:block !important;
  margin:0 0 6px !important;
  color:#334155 !important;
  font-size:13px !important;
  font-weight:900 !important;
}
.page-work-diary-form .work-diary-checks.compact{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  min-height:42px !important;
  padding:0 4px !important;
}
.page-work-diary-form .work-diary-checks.compact label,
.page-work-diary-form .work-diary-checks.compact input[type="checkbox"]{
  cursor:pointer !important;
}
.page-work-diary-form .work-diary-checks.compact label{
  user-select:none !important;
}

.page-work-diary-form .work-diary-autosave-notice{
  margin:14px 20px 0 !important;
}
.page-work-diary-form .work-diary-autosave-notice[hidden]{
  display:none !important;
}
.page-work-diary-form .work-diary-material-form-control{
  flex-wrap:wrap !important;
}
.page-work-diary-form .work-diary-material-form-control .work-diary-material-form-help{
  min-height:0 !important;
  line-height:1.25 !important;
}
.page-work-diary-form [data-work-diary-material-prepare]:disabled{
  cursor:wait !important;
  opacity:.7 !important;
}

@media(max-width:1000px){
  .page-work-diary-form .work-diary-item-compact-grid{
    grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) !important;
  }
  .page-work-diary-form .work-diary-status-field{
    grid-column:1 / 2 !important;
    grid-row:auto !important;
  }
  .page-work-diary-form .work-diary-check-field{
    grid-column:2 / 3 !important;
    grid-row:auto !important;
  }
}

@media(max-width:760px){
  .page-work-diary-form .work-diary-status-field,
  .page-work-diary-form .work-diary-check-field{
    grid-column:1 / -1 !important;
  }
}

/* =========================================================
   SITE LIST CONTACT LAYOUT HOTFIX 20260710
   - 연락처 영역 추가 후 3열 배치 누락 복구
   - 대상처 목록 페이지에만 적용
   ========================================================= */
.page-site-list .container{
  max-width:1380px !important;
}

.page-site-list .site-list-card{
  grid-template-columns:minmax(330px,1.15fr) minmax(350px,.95fr) auto !important;
  gap:18px !important;
}

.page-site-list .site-list-contacts{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:6px;
  min-width:0;
  padding:4px 18px;
  border-left:1px solid #d9e6f7;
  border-right:1px solid #d9e6f7;
  color:#17233a;
}

.page-site-list .site-contact-line{
  display:grid;
  grid-template-columns:118px minmax(0,1fr);
  align-items:start;
  gap:7px;
  min-width:0;
  font-size:13px;
  line-height:1.35;
}

.page-site-list .site-contact-line > span{
  color:#52647c;
  font-weight:850;
  white-space:nowrap;
}

.page-site-list .site-contact-line > strong{
  min-width:0;
  color:#071b3f;
  font-weight:900;
  overflow-wrap:anywhere;
  word-break:keep-all;
}

.page-site-list .site-list-actions{
  grid-column:auto !important;
  align-self:center;
  justify-content:flex-end !important;
  min-width:94px;
}

@media(max-width:1100px){
  .page-site-list .site-list-card{
    grid-template-columns:minmax(0,1fr) minmax(300px,.9fr) !important;
  }
  .page-site-list .site-list-contacts{
    border-right:0;
    padding-right:0;
  }
  .page-site-list .site-list-actions{
    grid-column:1 / -1 !important;
    justify-content:flex-end !important;
  }
}

@media(max-width:760px){
  .page-site-list .site-list-card{
    grid-template-columns:1fr !important;
    gap:12px !important;
  }
  .page-site-list .site-list-contacts{
    padding:12px 0 0;
    border-left:0;
    border-right:0;
    border-top:1px solid #d9e6f7;
  }
  .page-site-list .site-contact-line{
    grid-template-columns:110px minmax(0,1fr);
  }
  .page-site-list .site-list-actions{
    grid-column:1 !important;
    justify-content:flex-start !important;
  }
}

/* =========================================================
 * 업무일지 동행자 직원 카드 선택 v20260713
 * ========================================================= */
.page-work-diary-form .work-diary-form-grid-daily{
  grid-template-columns:minmax(180px,.72fr) minmax(320px,2fr) !important;
}
.page-work-diary-form .work-diary-companion-section{
  margin-top:16px;
  padding:15px;
  border:1px solid #cfe0ff;
  border-radius:16px;
  background:linear-gradient(180deg,#f8fbff 0%,#ffffff 100%);
}
.page-work-diary-form .work-diary-companion-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:11px;
}
.page-work-diary-form .work-diary-companion-head > span{
  color:#223a61;
  font-size:14px;
  font-weight:950;
}
.page-work-diary-form .work-diary-companion-head > strong{
  display:inline-flex;
  align-items:center;
  min-height:27px;
  padding:0 10px;
  border:1px solid #bfd7ff;
  border-radius:999px;
  background:#eef5ff;
  color:#174ea6;
  font-size:12px;
  font-weight:950;
  white-space:nowrap;
}
.page-work-diary-form .work-diary-companion-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(145px,1fr));
  gap:8px;
}
.page-work-diary-form .work-diary-companion-card{
  position:relative;
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
  min-height:57px;
  margin:0;
  padding:9px 10px;
  border:1px solid #dbe5f3;
  border-radius:13px;
  background:#fff;
  box-shadow:0 4px 12px rgba(15,42,95,.04);
  cursor:pointer;
  user-select:none;
  transition:border-color .15s ease,background .15s ease,box-shadow .15s ease,transform .15s ease;
}
.page-work-diary-form .work-diary-companion-card:hover{
  border-color:#8eb7fb;
  background:#f8fbff;
  transform:translateY(-1px);
}
.page-work-diary-form .work-diary-companion-card.is-selected{
  border-color:#2f6de7;
  background:#edf5ff;
  box-shadow:0 7px 16px rgba(47,109,231,.13);
}
.page-work-diary-form .work-diary-companion-card > input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.page-work-diary-form .work-diary-companion-checkmark{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 23px;
  width:23px;
  height:23px;
  border:1px solid #cbd5e1;
  border-radius:7px;
  background:#fff;
  color:transparent;
  font-size:14px;
  font-weight:950;
}
.page-work-diary-form .work-diary-companion-card.is-selected .work-diary-companion-checkmark{
  border-color:#2563eb;
  background:#2563eb;
  color:#fff;
}
.page-work-diary-form .work-diary-companion-info{
  display:block;
  min-width:0;
}
.page-work-diary-form .work-diary-companion-info b{
  display:block;
  overflow:hidden;
  color:#0f254a;
  font-size:14px;
  font-weight:950;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.page-work-diary-form .work-diary-companion-info small{
  display:block;
  margin-top:3px;
  overflow:hidden;
  color:#64748b;
  font-size:11px;
  font-weight:800;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.page-work-diary-form .work-diary-companion-extra{
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  align-items:center;
  gap:10px;
  margin-top:11px;
}
.page-work-diary-form .work-diary-companion-extra > span{
  margin:0;
  color:#475569;
  font-size:12px;
  font-weight:900;
}
.page-work-diary-form .work-diary-companion-extra .input{
  min-width:0;
}
@media(max-width:760px){
  .page-work-diary-form .work-diary-form-grid-daily{
    grid-template-columns:1fr !important;
  }
  .page-work-diary-form .work-diary-companion-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .page-work-diary-form .work-diary-companion-extra{
    grid-template-columns:1fr;
    gap:6px;
  }
}
@media(max-width:430px){
  .page-work-diary-form .work-diary-companion-grid{
    grid-template-columns:1fr;
  }
}

/* 자재목록 5페이지 단위 페이징 */
.page-material-list .material-pager{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:6px;
  padding:15px 12px 4px;
}
.page-material-list .material-pager a,
.page-material-list .material-pager span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:34px;
  height:34px;
  padding:0 9px;
  border:1px solid #cfe0ff;
  border-radius:10px;
  background:#fff;
  color:#174ea6;
  font-size:13px;
  font-weight:950;
  text-decoration:none;
}
.page-material-list .material-pager a.active{
  border-color:#2f6de7;
  background:#2f6de7;
  color:#fff;
}
.page-material-list .material-pager a.pager-nav{
  min-width:58px;
}
.page-material-list .material-pager span.is-disabled{
  border-color:#e2e8f0;
  background:#f8fafc;
  color:#a0aec0;
}

/* 2026-07-13: 점검관리 단계별 마감일 강조 */
.page-work-case-manage-popup .work-manage-step-deadline{
  display:block !important;
}
.page-work-case-manage-popup .work-manage-deadline-box{
  display:flex !important;
  align-items:center !important;
  flex-wrap:wrap !important;
  gap:6px 9px !important;
  min-height:38px !important;
  padding:8px 11px !important;
  border:1px solid #b9d2f7 !important;
  border-left:5px solid #2f6df6 !important;
  border-radius:13px !important;
  background:#eef5ff !important;
  color:#173a68 !important;
  box-shadow:0 5px 14px rgba(47,109,246,.08) !important;
}
.page-work-case-manage-popup .work-manage-deadline-label{
  display:inline-flex !important;
  align-items:center !important;
  min-height:23px !important;
  padding:2px 8px !important;
  border-radius:999px !important;
  background:#dceaff !important;
  color:#0752ca !important;
  font-size:11px !important;
  font-weight:950 !important;
}
.page-work-case-manage-popup .work-manage-deadline-box strong{
  color:#082d63 !important;
  font-size:15px !important;
  font-weight:950 !important;
  letter-spacing:.01em !important;
}
.page-work-case-manage-popup .work-manage-deadline-box em{
  display:inline-flex !important;
  align-items:center !important;
  min-height:24px !important;
  padding:2px 8px !important;
  border-radius:999px !important;
  background:#fff !important;
  color:#0752ca !important;
  font-size:12px !important;
  font-style:normal !important;
  font-weight:950 !important;
}
.page-work-case-manage-popup .work-manage-deadline-box small{
  margin-left:auto !important;
  color:#5a7190 !important;
  font-size:11px !important;
  font-weight:850 !important;
}
.page-work-case-manage-popup .work-manage-deadline-box.is-today{
  border-color:#ffbd58 !important;
  border-left-color:#f59e0b !important;
  background:#fff8e8 !important;
}
.page-work-case-manage-popup .work-manage-deadline-box.is-today em{
  color:#b86100 !important;
}
.page-work-case-manage-popup .work-manage-deadline-box.is-overdue,
.page-work-case-manage-popup .work-manage-deadline-box.is-late{
  border-color:#ffb8b8 !important;
  border-left-color:#e5484d !important;
  background:#fff1f1 !important;
}
.page-work-case-manage-popup .work-manage-deadline-box.is-overdue strong,
.page-work-case-manage-popup .work-manage-deadline-box.is-overdue em,
.page-work-case-manage-popup .work-manage-deadline-box.is-late strong,
.page-work-case-manage-popup .work-manage-deadline-box.is-late em{
  color:#c21f2f !important;
}
.page-work-case-manage-popup .work-manage-deadline-box.is-done{
  border-color:#a7dfba !important;
  border-left-color:#20a05a !important;
  background:#effcf4 !important;
}
.page-work-case-manage-popup .work-manage-deadline-box.is-done strong,
.page-work-case-manage-popup .work-manage-deadline-box.is-done em{
  color:#087a40 !important;
}
.page-work-case-manage-popup .work-manage-deadline-box.is-pending{
  border-color:#d8e3f1 !important;
  border-left-color:#9aabc0 !important;
  background:#f8fafc !important;
  box-shadow:none !important;
}
.page-work-case-manage-popup .work-manage-deadline-box.is-pending strong{
  color:#5c6f87 !important;
  font-size:12px !important;
}
.page-work-case-manage-popup .work-manage-deadline-box.is-pending .work-manage-deadline-label{
  background:#e9eef5 !important;
  color:#586b83 !important;
}
@media (max-width:720px){
  .page-work-case-manage-popup .work-manage-deadline-box small{
    width:100% !important;
    margin-left:0 !important;
  }
}


/* 2026-07-20: 점검관리 완료 마감은 처리일을 중심으로 표시 */
.page-work-case-manage-popup .work-manage-deadline-box.has-completion{
  flex-wrap:nowrap !important;
}
.page-work-case-manage-popup .work-manage-deadline-box.has-completion .work-manage-deadline-label{
  flex:0 0 auto !important;
  background:#dff7e8 !important;
  color:#087a40 !important;
}
.page-work-case-manage-popup .work-manage-deadline-box.has-completion strong{
  flex:0 0 auto !important;
  color:#087a40 !important;
  font-size:17px !important;
  line-height:1.1 !important;
  letter-spacing:.015em !important;
}
.page-work-case-manage-popup .work-manage-deadline-box.has-completion em{
  flex:0 0 auto !important;
}
.page-work-case-manage-popup .work-manage-deadline-box.has-completion small{
  margin-left:auto !important;
  white-space:nowrap !important;
  color:#667b94 !important;
  font-size:10px !important;
  font-weight:800 !important;
}
.page-work-case-manage-popup .work-manage-deadline-box.has-completion.is-late strong{
  color:#087a40 !important;
}
.page-work-case-manage-popup .work-manage-deadline-box.has-completion.is-late em{
  color:#c21f2f !important;
}
@media (max-width:720px){
  .page-work-case-manage-popup .work-manage-deadline-box.has-completion{
    flex-wrap:wrap !important;
  }
  .page-work-case-manage-popup .work-manage-deadline-box.has-completion small{
    width:auto !important;
    margin-left:auto !important;
  }
}

/* 대상처 목록 상단 중앙 페이징 + 계약업무 구분 v20260713 */
.page-site-list .site-list-card-header{
  display:grid !important;
  grid-template-columns:minmax(180px,1fr) auto minmax(180px,1fr);
  align-items:center;
  gap:12px;
}
.page-site-list .site-list-title-pager{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  flex-wrap:wrap;
}
.page-site-list .site-list-header-spacer{min-width:1px;}
.page-site-list .site-work-badge.agency{background:#e8f5e9;color:#176a35;border-color:#a7d9b4;}
.page-site-list .site-work-badge.inspection{background:#eaf2ff;color:#174ea6;border-color:#b7d0fb;}
.page-site-list .site-work-badge.construction{background:#fff4e5;color:#9a4d00;border-color:#f1c78f;}
@media(max-width:760px){
  .page-site-list .site-list-card-header{grid-template-columns:1fr;}
  .page-site-list .site-list-title-pager{order:2;}
  .page-site-list .site-list-header-spacer{display:none;}
}

.page-work-diary-form .work-diary-form-grid-daily > .work-diary-companion-section{grid-column:1 / -1;margin-top:0;}
.page-work-diary-form .work-diary-companion-head > b{display:inline-flex;align-items:center;min-height:27px;padding:0 10px;border:1px solid #bfd7ff;border-radius:999px;background:#eef5ff;color:#174ea6;font-size:12px;font-weight:950;white-space:nowrap;}

/* 마감관리 상태변경 후 최신 단계 새로고침/강조 및 하단 여백 20260714 */
.page-work-deadline-dashboard .workflow-dashboard-list{
  padding-bottom:120px !important;
  margin-bottom:36px !important;
}
.page-work-deadline-dashboard .workflow-case-card.is-just-updated{
  border-color:#6ea8ff !important;
  box-shadow:0 0 0 4px rgba(47,124,255,.12), 0 18px 38px rgba(30,86,170,.15) !important;
}
.page-work-deadline-dashboard .workflow-recent-badge{
  border-color:#86d7a2 !important;
  background:#ecfdf5 !important;
  color:#166534 !important;
  font-weight:950 !important;
}
.page-work-deadline-dashboard .workflow-case-card[id]{
  scroll-margin-top:22px;
}
@media(max-width:760px){
  .page-work-deadline-dashboard .workflow-dashboard-list{
    padding-bottom:90px !important;
  }
}

/* =========================================================
   ESTIMATE V45 - company seal 18mm + wider top spacing
   - company_header.png 내 직인 외곽 지름(약 277/1371)을 기준으로
     출력 폭 89mm에서 직인이 약 18mm가 되도록 고정
   - 일반 견적서 출력/PDF 상단 제목 위 여백 확대
   ========================================================= */
body.estimate-print-page .estimate-doc-title{
  padding-top:7mm !important;
}

body.estimate-print-page .estimate-company-image{
  width:89mm !important;
  max-width:89mm !important;
  height:auto !important;
}

body.estimate-print-page.estimate-print-has-cost .estimate-doc-top{
  grid-template-columns:minmax(0,1fr) 92mm !important;
}

body.estimate-print-page.estimate-print-no-cost .estimate-document-paper-page1.no-cost-sheet .estimate-doc-title{
  padding-top:7mm !important;
}

body.estimate-print-page.estimate-print-no-cost .estimate-document-paper-page1.no-cost-sheet .estimate-doc-top{
  grid-template-columns:minmax(0,1fr) 92mm !important;
}

body.estimate-print-page.estimate-print-no-cost .estimate-document-paper-page1.no-cost-sheet .estimate-company-image{
  width:89mm !important;
  max-width:89mm !important;
  height:auto !important;
}

/* =========================================================
   견적서 품목 입력 표 정렬 및 관리버튼 한 줄 고정 20260716
   ========================================================= */
body.page-estimate-form .estimate-items-head,
body.estimate-popup-body.page-estimate-form .estimate-items-head{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:14px !important;
  flex-wrap:nowrap !important;
}

body.page-estimate-form .estimate-item-tools,
body.estimate-popup-body.page-estimate-form .estimate-item-tools{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  flex-wrap:nowrap !important;
  gap:7px !important;
  margin-top:18px !important;
  margin-bottom:10px !important;
  padding-top:8px !important;
  white-space:nowrap !important;
}

body.page-estimate-form .estimate-item-tools .btn,
body.estimate-popup-body.page-estimate-form .estimate-item-tools .btn{
  flex:0 0 auto !important;
  margin-top:0 !important;
  white-space:nowrap !important;
}

body.page-estimate-form .estimate-items,
body.estimate-popup-body.page-estimate-form .estimate-items{
  width:100% !important;
  max-width:100% !important;
  overflow:hidden !important;
  padding:0 !important;
  border:1px solid #b9cbe5 !important;
  border-radius:12px !important;
  background:#fff !important;
  box-sizing:border-box !important;
}

body.page-estimate-form .estimate-item-row,
body.estimate-popup-body.page-estimate-form .estimate-item-row{
  display:grid !important;
  grid-template-columns:
    minmax(160px,1.2fr)
    minmax(130px,1fr)
    58px
    58px
    96px
    100px
    96px
    100px
    98px
    minmax(110px,.8fr)
    250px !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  gap:0 !important;
  align-items:stretch !important;
  margin:0 !important;
  border-bottom:1px solid #d9e3f1 !important;
  box-sizing:border-box !important;
}

body.page-estimate-form .estimate-item-row:last-child,
body.estimate-popup-body.page-estimate-form .estimate-item-row:last-child{
  border-bottom:0 !important;
}

body.page-estimate-form .estimate-item-header,
body.estimate-popup-body.page-estimate-form .estimate-item-header{
  position:sticky !important;
  top:0 !important;
  z-index:2 !important;
  min-height:40px !important;
  background:#eef4fc !important;
  color:#243b5a !important;
  font-size:12px !important;
  font-weight:950 !important;
}

body.page-estimate-form .estimate-item-header > span,
body.estimate-popup-body.page-estimate-form .estimate-item-header > span{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:0 !important;
  min-height:40px !important;
  padding:6px 5px !important;
  border-right:1px solid #c9d7e8 !important;
  box-sizing:border-box !important;
  text-align:center !important;
}

body.page-estimate-form .estimate-item-header > span:last-child,
body.estimate-popup-body.page-estimate-form .estimate-item-header > span:last-child{
  border-right:0 !important;
}

body.page-estimate-form .estimate-item-row:not(.estimate-item-header) > .input,
body.estimate-popup-body.page-estimate-form .estimate-item-row:not(.estimate-item-header) > .input,
body.page-estimate-form .estimate-item-memo-cell,
body.estimate-popup-body.page-estimate-form .estimate-item-memo-cell,
body.page-estimate-form .estimate-item-action-cell,
body.estimate-popup-body.page-estimate-form .estimate-item-action-cell{
  min-width:0 !important;
  min-height:46px !important;
  height:auto !important;
  margin:0 !important;
  border:0 !important;
  border-right:1px solid #d9e3f1 !important;
  border-radius:0 !important;
  box-sizing:border-box !important;
  box-shadow:none !important;
}

body.page-estimate-form .estimate-item-row:not(.estimate-item-header) > .input,
body.estimate-popup-body.page-estimate-form .estimate-item-row:not(.estimate-item-header) > .input{
  width:100% !important;
  padding:8px 7px !important;
  background:#fff !important;
}

body.page-estimate-form .estimate-item-row:not(.estimate-item-header) > .input[readonly],
body.estimate-popup-body.page-estimate-form .estimate-item-row:not(.estimate-item-header) > .input[readonly]{
  background:#f7f9fc !important;
}

body.page-estimate-form .estimate-item-memo-cell,
body.estimate-popup-body.page-estimate-form .estimate-item-memo-cell{
  display:flex !important;
  align-items:stretch !important;
  padding:0 !important;
}

body.page-estimate-form .estimate-item-memo-cell .input,
body.estimate-popup-body.page-estimate-form .estimate-item-memo-cell .input{
  width:100% !important;
  min-width:0 !important;
  min-height:46px !important;
  margin:0 !important;
  padding:8px 7px !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  box-sizing:border-box !important;
}

body.page-estimate-form .estimate-item-action-cell,
body.estimate-popup-body.page-estimate-form .estimate-item-action-cell{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:4px !important;
  padding:5px !important;
  border-right:0 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
}

body.page-estimate-form .estimate-item-action-cell .estimate-item-source-badge,
body.estimate-popup-body.page-estimate-form .estimate-item-action-cell .estimate-item-source-badge{
  flex:0 0 auto !important;
  min-width:48px !important;
  min-height:28px !important;
  padding:3px 6px !important;
  justify-content:center !important;
  font-size:10px !important;
}

body.page-estimate-form .estimate-item-action-cell .btn,
body.estimate-popup-body.page-estimate-form .estimate-item-action-cell .btn,
body.page-estimate-form .estimate-item-action-cell .estimate-row-delete-btn,
body.estimate-popup-body.page-estimate-form .estimate-item-action-cell .estimate-row-delete-btn{
  flex:0 0 auto !important;
  width:auto !important;
  min-width:38px !important;
  max-width:none !important;
  height:30px !important;
  min-height:30px !important;
  padding:0 7px !important;
  margin:0 !important;
  border-radius:8px !important;
  font-size:11px !important;
  line-height:1 !important;
  white-space:nowrap !important;
}

body.page-estimate-form .estimate-item-action-cell [hidden],
body.estimate-popup-body.page-estimate-form .estimate-item-action-cell [hidden]{
  display:none !important;
}

@media(max-width:1200px){
  body.page-estimate-form .estimate-items,
  body.estimate-popup-body.page-estimate-form .estimate-items{
    overflow-x:auto !important;
  }
  body.page-estimate-form .estimate-item-row,
  body.estimate-popup-body.page-estimate-form .estimate-item-row{
    min-width:1260px !important;
    grid-template-columns:160px 130px 58px 58px 96px 100px 96px 100px 98px 114px 250px !important;
  }
}

/* =========================================================
   HEADER / DRAWER / ESTIMATE ITEM LINK UI 20260716
   ========================================================= */
.topbar-account{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  min-width:0;
}
.topbar-user{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  max-width:240px;
  padding:0 12px;
  border:1px solid rgba(255,255,255,.34);
  border-radius:999px;
  background:rgba(255,255,255,.14);
  color:#fff;
  font-size:13px;
  font-weight:850;
  line-height:1;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.topbar-logout{white-space:nowrap;}

/* PC·모바일 공통 강력 새로고침 버튼
 * - 회전 상태는 캐시 삭제·페이지 재호출이 진행 중임을 알려준다.
 */
.topbar-refresh{
  display:inline-flex;
  width:38px;
  height:38px;
  flex:0 0 38px;
  color:#1d4ed8;
}
.topbar-refresh > span{
  display:inline-block;
  font-size:24px;
  font-weight:900;
  line-height:1;
  transform-origin:center;
}
.topbar-refresh.is-refreshing{
  cursor:wait;
  opacity:.72;
}
.topbar-refresh.is-refreshing > span{
  animation:topbar-refresh-spin .72s linear infinite;
}
@keyframes topbar-refresh-spin{
  to{transform:rotate(360deg);}
}

.drawer-collapsible{
  display:block;
  padding:0;
}
.drawer-group-summary{
  position:relative;
  display:flex;
  align-items:center;
  min-height:34px;
  padding:8px 28px 8px 0;
  margin:0;
  cursor:pointer;
  list-style:none;
  user-select:none;
}
.drawer-group-summary::-webkit-details-marker{display:none;}
.drawer-group-summary::after{
  content:'▾';
  position:absolute;
  right:4px;
  top:50%;
  transform:translateY(-50%) rotate(-90deg);
  transition:transform .16s ease;
  color:var(--muted);
  font-size:12px;
}
.drawer-collapsible[open] .drawer-group-summary::after{
  transform:translateY(-50%) rotate(0deg);
}
.drawer-collapsible-body{
  display:grid;
  gap:2px;
  padding-top:6px;
}

body.page-estimate-form .estimate-item-row,
body.estimate-popup-body.page-estimate-form .estimate-item-row{
  grid-template-columns:
    minmax(205px,1.45fr)
    minmax(120px,.9fr)
    58px
    58px
    92px
    96px
    92px
    96px
    94px
    minmax(104px,.75fr)
    56px !important;
}
body.page-estimate-form .estimate-item-name-cell,
body.estimate-popup-body.page-estimate-form .estimate-item-name-cell{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 48px !important;
  align-items:stretch !important;
  min-width:0 !important;
  min-height:46px !important;
  border-right:1px solid #d9e3f1 !important;
  background:#fff !important;
  box-sizing:border-box !important;
}
body.page-estimate-form .estimate-item-name-cell > .input,
body.estimate-popup-body.page-estimate-form .estimate-item-name-cell > .input{
  width:100% !important;
  min-width:0 !important;
  min-height:46px !important;
  margin:0 !important;
  padding:8px 7px !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  box-sizing:border-box !important;
  text-align:right !important;
}
body.page-estimate-form .estimate-item-material-button,
body.estimate-popup-body.page-estimate-form .estimate-item-material-button{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:48px !important;
  min-width:48px !important;
  min-height:46px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  border-left:1px solid #d9e3f1 !important;
  border-radius:0 !important;
  font-size:11px !important;
  font-weight:950 !important;
  cursor:pointer !important;
  transition:background .15s ease,color .15s ease !important;
}
body.page-estimate-form .estimate-item-material-button.is-linked,
body.estimate-popup-body.page-estimate-form .estimate-item-material-button.is-linked{
  background:#dcfce7 !important;
  color:#047857 !important;
}
body.page-estimate-form .estimate-item-material-button.is-unlinked,
body.estimate-popup-body.page-estimate-form .estimate-item-material-button.is-unlinked{
  background:#fee2e2 !important;
  color:#b91c1c !important;
}
body.page-estimate-form .estimate-item-material-button:hover,
body.estimate-popup-body.page-estimate-form .estimate-item-material-button:hover{
  filter:brightness(.97);
}
body.page-estimate-form .estimate-item-row:not(.estimate-item-header) > .input,
body.estimate-popup-body.page-estimate-form .estimate-item-row:not(.estimate-item-header) > .input,
body.page-estimate-form .estimate-item-memo-cell .input,
body.estimate-popup-body.page-estimate-form .estimate-item-memo-cell .input{
  text-align:right !important;
}
body.page-estimate-form .estimate-item-action-cell,
body.estimate-popup-body.page-estimate-form .estimate-item-action-cell{
  padding:5px !important;
}
body.page-estimate-form .estimate-item-action-cell .estimate-row-delete-btn,
body.estimate-popup-body.page-estimate-form .estimate-item-action-cell .estimate-row-delete-btn{
  width:44px !important;
  min-width:44px !important;
  max-width:44px !important;
  padding:0 !important;
}
@media(max-width:1200px){
  body.page-estimate-form .estimate-item-row,
  body.estimate-popup-body.page-estimate-form .estimate-item-row{
    min-width:1120px !important;
    grid-template-columns:205px 130px 58px 58px 92px 96px 92px 96px 94px 112px 56px !important;
  }
}
@media(max-width:720px){
  /* 모바일에서는 계정명 대신 새로고침·로그아웃 동작을 우선 배치한다. */
  .topbar-row{gap:8px;}
  .topbar-title{flex:1 1 auto;}
  .topbar-user{display:none;}
  .topbar-account{flex:0 0 auto;gap:5px;}
  .topbar-refresh{display:inline-flex;width:38px;height:38px;}
  .topbar-logout{min-width:64px;padding:0 10px;font-size:12px;}
}
@media(max-width:420px){
  /* 폭이 아주 좁은 휴대폰은 부제목만 숨겨 버튼과 제목이 겹치지 않게 한다. */
  .topbar-title .sub{display:none;}
  .topbar-title h1{font-size:16px;}
}
.topbar-user{
  border-color:rgba(37,99,235,.18) !important;
  background:rgba(239,246,255,.92) !important;
  color:#1e3a5f !important;
}
.topbar-logout{
  width:auto !important;
  min-width:72px !important;
  padding:0 13px !important;
  border-radius:999px !important;
  font-size:13px !important;
  font-weight:850 !important;
}

/* estimate collection registration state */
.page-estimate-view .estimate-collection-registered{
  background:#16a34a;
  border-color:#15803d;
  color:#fff;
  box-shadow:0 8px 18px rgba(22,163,74,.18);
}
.page-estimate-view .estimate-collection-registered:hover{
  background:#15803d;
  border-color:#166534;
  color:#fff;
}

/* 2026-07-29 모바일 업무일지 정렬 + 한 줄형 하단 작업바 */
@media (max-width:760px){
  html:has(body.page-work-diary-form),
  body.page-work-diary-form{
    max-width:100% !important;
    overflow-x:hidden !important;
  }

  body.page-work-diary-form #appMain,
  body.page-work-diary-form .app-layout-shell,
  body.page-work-diary-form .work-diary-wrap,
  body.page-work-diary-form .work-diary-form,
  body.page-work-diary-form .work-diary-form-section,
  body.page-work-diary-form .work-diary-item-list,
  body.page-work-diary-form .work-diary-item-card,
  body.page-work-diary-form .work-diary-item-head,
  body.page-work-diary-form .work-diary-item-compact-grid,
  body.page-work-diary-form .work-diary-item-content-inline,
  body.page-work-diary-form .work-diary-item-detail{
    box-sizing:border-box !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }

  body.page-work-diary-form .work-diary-wrap{
    padding-bottom:78px !important;
  }

  body.page-work-diary-form .work-diary-form-section{
    padding:15px 12px !important;
  }

  body.page-work-diary-form .work-diary-section-head{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:12px !important;
  }

  body.page-work-diary-form .work-diary-section-head > .actions{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:8px !important;
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
  }

  body.page-work-diary-form .work-diary-section-head > .actions .btn{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    padding-left:7px !important;
    padding-right:7px !important;
    white-space:nowrap !important;
  }

  body.page-work-diary-form .work-diary-item-head{
    flex-wrap:wrap !important;
    align-items:flex-start !important;
    padding:12px !important;
  }

  body.page-work-diary-form .work-diary-item-head > strong{
    flex:1 1 150px !important;
    min-width:0 !important;
  }

  body.page-work-diary-form .work-diary-item-head > .actions{
    flex:0 1 auto !important;
    display:grid !important;
    grid-template-columns:repeat(2,minmax(82px,auto)) !important;
    gap:7px !important;
    min-width:0 !important;
    margin-left:auto !important;
  }

  body.page-work-diary-form .work-diary-item-head > .actions .btn{
    min-width:0 !important;
    width:100% !important;
    padding-left:9px !important;
    padding-right:9px !important;
    white-space:nowrap !important;
  }

  body.page-work-diary-form .work-diary-item-compact-grid{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    gap:13px !important;
    padding:14px 12px !important;
    overflow:visible !important;
  }

  body.page-work-diary-form .work-diary-item-compact-grid > label,
  body.page-work-diary-form .work-diary-item-compact-grid > div,
  body.page-work-diary-form .work-diary-type-select-field,
  body.page-work-diary-form .work-diary-site-field,
  body.page-work-diary-form .work-diary-status-field,
  body.page-work-diary-form .work-diary-check-field,
  body.page-work-diary-form .work-diary-schedule-field,
  body.page-work-diary-form .work-diary-estimate-field,
  body.page-work-diary-form .work-diary-material-form-field{
    grid-column:1 / -1 !important;
    grid-row:auto !important;
    box-sizing:border-box !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important;
  }

  body.page-work-diary-form :where(input.input, select.input, textarea.input),
  body.page-work-diary-form .work-diary-search-results,
  body.page-work-diary-form .work-diary-material-form-control,
  body.page-work-diary-form .work-diary-checks.compact{
    box-sizing:border-box !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }

  body.page-work-diary-form .work-diary-material-form-control{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    align-items:stretch !important;
    gap:7px !important;
  }

  body.page-work-diary-form .work-diary-material-form-control .btn{
    width:100% !important;
    min-width:0 !important;
    white-space:normal !important;
  }

  body.page-work-diary-form .work-diary-item-content-inline,
  body.page-work-diary-form .work-diary-item-detail{
    padding-left:12px !important;
    padding-right:12px !important;
  }

  /* 하단 작업바: 화면을 가리지 않도록 한 줄 높이로 고정하고 좌우로 스크롤한다. */
  body.page-work-diary-form .work-diary-floating-actionbar{
    left:6px !important;
    right:6px !important;
    bottom:max(6px, env(safe-area-inset-bottom)) !important;
    transform:none !important;
    display:flex !important;
    flex-flow:row nowrap !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:5px !important;
    width:auto !important;
    max-width:none !important;
    min-height:0 !important;
    max-height:48px !important;
    padding:5px 6px !important;
    border-radius:14px !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    scrollbar-width:none !important;
  }

  body.page-work-diary-form .work-diary-floating-actionbar::-webkit-scrollbar{
    display:none !important;
  }

  body.page-work-diary-form .work-diary-floating-add-group,
  body.page-work-diary-form .work-diary-floating-main-group{
    flex:0 0 auto !important;
    display:flex !important;
    flex-flow:row nowrap !important;
    align-items:center !important;
    gap:5px !important;
    width:auto !important;
    min-width:max-content !important;
  }

  body.page-work-diary-form .work-diary-floating-actionbar .btn{
    box-sizing:border-box !important;
    flex:0 0 auto !important;
    width:auto !important;
    min-width:0 !important;
    min-height:30px !important;
    height:30px !important;
    padding:4px 8px !important;
    font-size:11px !important;
    line-height:1 !important;
    white-space:nowrap !important;
  }

  body.page-work-diary-form .work-diary-floating-addbar-title{
    display:none !important;
  }
}

@media (max-width:390px){
  body.page-work-diary-form .work-diary-section-head > .actions,
  body.page-work-diary-form .work-diary-floating-add-group{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  body.page-work-diary-form .work-diary-wrap{
    padding-bottom:78px !important;
  }
}


/* ========================================================================
   내 정보 수정 페이지
   - 모든 직원이 자기 개인정보와 비밀번호만 수정하는 독립 화면
   - 인사/권한 항목은 읽기 전용 카드로 분리해 데이터 오변경을 막는다.
   ======================================================================== */
body.page-user-profile .profile-page-wrap{
  width:min(100%, 980px);
  margin:0 auto;
  padding-bottom:32px;
}
body.page-user-profile .profile-account-head{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
}
body.page-user-profile .profile-avatar{
  display:flex;
  align-items:center;
  justify-content:center;
  width:58px;
  height:58px;
  border-radius:18px;
  background:linear-gradient(145deg,#dbeafe,#eff6ff);
  color:#1d4ed8;
  font-size:24px;
  font-weight:900;
}
body.page-user-profile .profile-account-main{min-width:0;}
body.page-user-profile .profile-account-main h2{margin:0;font-size:21px;color:#172554;}
body.page-user-profile .profile-account-main p{margin:5px 0 0;color:#64748b;overflow-wrap:anywhere;}
body.page-user-profile .profile-account-badges{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end;}
body.page-user-profile .profile-form-card .card-header,
body.page-user-profile .profile-password-card .card-header,
body.page-user-profile .profile-readonly-card .card-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
body.page-user-profile .profile-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
body.page-user-profile .profile-form-grid label,
body.page-user-profile .profile-password-grid label{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:6px;
}
body.page-user-profile .profile-form-grid label>span,
body.page-user-profile .profile-password-grid label>span,
body.page-user-profile .profile-field-label{
  color:#334155;
  font-size:13px;
  font-weight:800;
}
body.page-user-profile .profile-form-grid label>span em{color:#dc2626;font-style:normal;}
body.page-user-profile .profile-address-field{grid-column:1/-1;min-width:0;}
body.page-user-profile .profile-address{display:grid;gap:8px;margin-top:6px;}
body.page-user-profile .profile-address .addr-row{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;}
body.page-user-profile .profile-address .addr-zip-row{grid-template-columns:minmax(120px,180px) auto;justify-content:start;}
body.page-user-profile .profile-card-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  padding:12px 16px;
}
body.page-user-profile .profile-card-actions p{margin:0 auto 0 0;color:#64748b;font-size:12px;}
body.page-user-profile .profile-readonly-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
body.page-user-profile .profile-readonly-grid>div{
  min-width:0;
  padding:12px;
  border:1px solid #e2e8f0;
  border-radius:12px;
  background:#f8fafc;
}
body.page-user-profile .profile-readonly-grid>div.is-wide{grid-column:span 2;}
body.page-user-profile .profile-readonly-grid span,
body.page-user-profile .profile-readonly-grid b{display:block;}
body.page-user-profile .profile-readonly-grid span{color:#64748b;font-size:11px;font-weight:700;}
body.page-user-profile .profile-readonly-grid b{margin-top:5px;color:#1e293b;overflow-wrap:anywhere;}
body.page-user-profile .profile-password-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
body.page-user-profile .profile-password-input{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;}
body.page-user-profile .profile-password-input .btn{min-width:58px;}
body.page-user-profile .topbar-profile-link{text-decoration:none;}
body.page-user-profile .topbar-profile-link:hover{text-decoration:underline;}

@media (max-width:760px){
  body.page-user-profile .profile-page-wrap{width:100%;padding-bottom:20px;}
  body.page-user-profile .profile-account-head{grid-template-columns:auto minmax(0,1fr);gap:12px;}
  body.page-user-profile .profile-account-badges{grid-column:1/-1;justify-content:flex-start;}
  body.page-user-profile .profile-form-grid,
  body.page-user-profile .profile-password-grid,
  body.page-user-profile .profile-readonly-grid{grid-template-columns:1fr;}
  body.page-user-profile .profile-readonly-grid>div.is-wide{grid-column:auto;}
  body.page-user-profile .profile-form-card .card-header,
  body.page-user-profile .profile-password-card .card-header,
  body.page-user-profile .profile-readonly-card .card-header{align-items:flex-start;}
  body.page-user-profile .profile-card-actions{align-items:stretch;flex-direction:column;}
  body.page-user-profile .profile-card-actions p{margin:0;}
  body.page-user-profile .profile-card-actions .btn{width:100%;}
}

@media (max-width:430px){
  body.page-user-profile .profile-avatar{width:48px;height:48px;border-radius:14px;font-size:20px;}
  body.page-user-profile .profile-account-main h2{font-size:18px;}
  body.page-user-profile .profile-address .addr-zip-row{grid-template-columns:minmax(0,1fr) auto;}
  body.page-user-profile .profile-password-input{grid-template-columns:minmax(0,1fr) 58px;}
}


/* 내 정보 > 비밀번호 일치 여부 실시간 안내 */
body.page-user-profile .profile-password-match-message{
  min-height:18px;
  margin:2px 0 0;
  padding-left:2px;
  font-size:12px;
  font-weight:800;
  line-height:1.45;
}
body.page-user-profile .profile-password-match-message:empty{
  min-height:0;
  margin:0;
}
body.page-user-profile .profile-password-match-message.is-match{
  color:#15803d;
}
body.page-user-profile .profile-password-match-message.is-mismatch{
  color:#dc2626;
}
body.page-user-profile .profile-password-input .input.is-password-match{
  border-color:#22c55e !important;
  box-shadow:0 0 0 3px rgba(34,197,94,.13) !important;
}
body.page-user-profile .profile-password-input .input.is-password-mismatch{
  border-color:#ef4444 !important;
  box-shadow:0 0 0 3px rgba(239,68,68,.13) !important;
}
body.page-user-profile .profile-password-input .input.is-password-mismatch:focus{
  border-color:#dc2626 !important;
  box-shadow:0 0 0 3px rgba(220,38,38,.18) !important;
}


/* 2026-07-29 전화·길찾기 빠른 연결 */
.site-nav-links,.schedule-contact-actions{display:flex;align-items:center;flex-wrap:wrap;gap:5px;min-width:0;}
.site-nav-link,.schedule-nav-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-weight:900;}
.site-nav-link{min-height:25px;padding:3px 8px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#334155;font-size:11px;}
.site-nav-link.is-naver,.schedule-nav-btn.is-naver{border-color:#86efac;background:#f0fdf4;color:#15803d;}
.site-nav-link.is-kakao,.schedule-nav-btn.is-kakao{border-color:#fde047;background:#fefce8;color:#854d0e;}
.site-nav-link.is-tmap,.schedule-nav-btn.is-tmap{border-color:#c4b5fd;background:#f5f3ff;color:#6d28d9;}
.site-contact-line a,.site-contact-profile a[href^="tel:"],.site-fire-view-meta[href^="tel:"]{color:#0b57d0;text-decoration:underline;text-underline-offset:2px;}
.page-inspection-schedule-list .schedule-contact-actions{margin-left:auto;justify-content:flex-end;}
.page-inspection-schedule-list .schedule-call-btn{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8;}
@media(max-width:760px){
  .page-inspection-schedule-list .schedule-contact-actions{width:100%;margin:6px 0 0;justify-content:flex-start;}
  .page-inspection-schedule-list .schedule-contact-actions .btn{min-height:30px;padding:4px 8px;font-size:11px;}
}
