/* DVTV-064 現場マスタ管理（テーマ干渉回避: 高詳細度 + !important） */
#dvtv064 { max-width: 1280px; margin: 0 auto; padding: 12px; font-size: 14px; color: #1e293b !important; }
#dvtv064 * { box-sizing: border-box; }

#dvtv064 .gm-head { display: flex !important; align-items: center; gap: 12px; margin-bottom: 10px; }
#dvtv064 .gm-title { margin: 0 !important; font-size: 20px; font-weight: 800;
  background: linear-gradient(90deg, #0ea5e9, #6366f1); -webkit-background-clip: text; background-clip: text; color: transparent !important; }
#dvtv064 .gm-level { font-size: 12px; color: #64748b !important; background: #f1f5f9; border-radius: 999px; padding: 3px 10px; }

/* タブ */
#dvtv064 .gm-tabs { display: flex !important; flex-direction: row; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
#dvtv064 .gm-tab { border: 1px solid #e2e8f0 !important; background: #fff !important; color: #334155 !important;
  border-radius: 10px !important; padding: 7px 14px !important; cursor: pointer; font-weight: 600; font-size: 13px; }
#dvtv064 .gm-tab.gm-on { background: linear-gradient(135deg, #0ea5e9, #6366f1) !important; color: #fff !important; border-color: transparent !important; }
#dvtv064 .gm-cnt { background: #ef4444; color: #fff !important; border-radius: 999px; padding: 1px 7px; font-size: 11px; margin-left: 4px; }

/* フィルタ（横並び厳守：テーマのwidth:100%上書きに勝つため各要素へ幅を明示） */
#dvtv064 .gm-filter { display: flex !important; flex-direction: row !important; flex-wrap: wrap; gap: 8px; align-items: center;
  background: #fff !important; border: 1px solid #e2e8f0; border-radius: 12px; padding: 10px 12px; margin-bottom: 12px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, .06); }
#dvtv064 .gm-filter > * { width: auto !important; max-width: none !important; margin: 0 !important; flex: 0 0 auto !important; float: none !important; }
#dvtv064 .gm-filter input[type="text"] { width: 240px !important; flex: 0 1 240px !important; min-width: 140px; }
#dvtv064 .gm-filter select { width: auto !important; min-width: 110px; max-width: 170px !important; display: inline-block !important; }
#dvtv064 .gm-filter input, #dvtv064 .gm-filter select,
#dvtv064 .gm-modal input, #dvtv064 .gm-modal select, #dvtv064 .gm-modal textarea,
#dvtv064 .gm-fg input, #dvtv064 .gm-fg select {
  border: 1px solid #cbd5e1 !important; border-radius: 8px !important; padding: 7px 10px !important;
  background: #fff !important; color: #1e293b !important; font-size: 13px !important; height: auto !important; }
#dvtv064 .gm-total { margin-left: auto; font-weight: 700; color: #0ea5e9 !important; }

/* ボタン */
#dvtv064 .gm-btn { border: 1px solid #cbd5e1 !important; background: #fff !important; color: #334155 !important;
  border-radius: 8px !important; padding: 7px 14px !important; cursor: pointer; font-size: 13px !important; font-weight: 600; }
#dvtv064 .gm-btn:hover { background: #f8fafc !important; }
#dvtv064 .gm-btn-primary { background: linear-gradient(135deg, #0ea5e9, #6366f1) !important; color: #fff !important; border-color: transparent !important; }
#dvtv064 .gm-btn-danger { background: #ef4444 !important; color: #fff !important; border-color: transparent !important; }
#dvtv064 .gm-btn-sm { padding: 4px 10px !important; font-size: 12px !important; }
#dvtv064 .gm-btn:disabled { opacity: .5; cursor: not-allowed; }

/* テーブル */
#dvtv064 .gm-table-wrap { overflow-x: auto; background: #fff !important; border: 1px solid #e2e8f0; border-radius: 12px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, .06); }
#dvtv064 .gm-table { width: 100%; border-collapse: collapse; font-size: 13px; }
#dvtv064 .gm-table th { background: #f8fafc !important; color: #475569 !important; text-align: left;
  padding: 9px 10px !important; border-bottom: 2px solid #e2e8f0 !important; white-space: nowrap; font-size: 12px; }
#dvtv064 .gm-table td { padding: 8px 10px !important; border-bottom: 1px solid #f1f5f9 !important; vertical-align: middle; }
#dvtv064 .gm-table tbody tr:hover td { background: #f0f9ff !important; }
#dvtv064 .gm-num { font-family: ui-monospace, monospace; color: #64748b !important; white-space: nowrap; }
#dvtv064 .gm-name { font-weight: 700; }
#dvtv064 .gm-addr { color: #64748b !important; }
#dvtv064 .gm-empty { text-align: center; color: #94a3b8 !important; padding: 24px !important; }

/* バッジ */
#dvtv064 .gm-kind, #dvtv064 .gm-st { display: inline-block; border-radius: 999px; padding: 2px 10px; font-size: 11px; font-weight: 700; white-space: nowrap; }
#dvtv064 .gm-kind-genba { background: #e0f2fe; color: #0369a1 !important; }
#dvtv064 .gm-kind-keihi { background: #fef3c7; color: #92400e !important; }
#dvtv064 .gm-st-active { background: #dcfce7; color: #166534 !important; }
#dvtv064 .gm-st-done { background: #e2e8f0; color: #475569 !important; }
#dvtv064 .gm-st-merged { background: #fee2e2; color: #991b1b !important; }
#dvtv064 .gm-links b { color: #6366f1 !important; }

/* ロック */
#dvtv064 .gm-lock { border: none !important; background: transparent !important; cursor: pointer; font-size: 17px; padding: 2px 6px !important; }
#dvtv064 .gm-lock.gm-locked { filter: drop-shadow(0 0 3px rgba(239, 68, 68, .6)); }
#dvtv064 .gm-lock-ro { font-size: 16px; }

/* ページャ */
#dvtv064 .gm-pager { display: flex; gap: 6px; margin-top: 10px; flex-wrap: wrap; }
#dvtv064 .gm-page { border: 1px solid #e2e8f0; border-radius: 8px; padding: 4px 11px; text-decoration: none !important; color: #334155 !important; background: #fff; }
#dvtv064 .gm-page.gm-on { background: #6366f1 !important; color: #fff !important; border-color: transparent; }

/* カード・統合 */
#dvtv064 .gm-card { background: #fff !important; border: 1px solid #e2e8f0; border-radius: 12px; padding: 14px; box-shadow: 0 1px 3px rgba(15, 23, 42, .06); }
#dvtv064 .gm-desc { color: #64748b !important; margin: 0 0 12px; font-size: 13px; }
#dvtv064 .gm-merge-row { display: flex !important; flex-direction: row; gap: 14px; align-items: stretch; flex-wrap: wrap; }
#dvtv064 .gm-merge-row .gm-fg { flex: 1; min-width: 260px; display: flex; flex-direction: column; gap: 6px; }
#dvtv064 .gm-merge-row select { width: 100%; min-height: 180px; }
#dvtv064 .gm-merge-arrow { align-self: center; font-size: 26px; color: #6366f1 !important; font-weight: 800; }
#dvtv064 .gm-actions { display: flex; gap: 10px; align-items: center; margin-top: 12px; }
#dvtv064 .gm-merge-result { margin-top: 12px; padding: 10px 12px; background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 10px; min-height: 20px; }
#dvtv064 .gm-merge-result:empty { display: none; }

/* ウィザード */
#dvtv064 .gm-wz-bulk { display: flex; gap: 12px; align-items: center; margin-bottom: 10px; }
#dvtv064 .gm-wz-done td { background: #f0fdf4 !important; }
#dvtv064 .gm-wz-state { font-size: 12px; color: #64748b !important; white-space: nowrap; }
#dvtv064 .gm-invalid { outline: 2px solid #ef4444 !important; }
#dvtv064 .gm-logdetail { font-family: ui-monospace, monospace; font-size: 11px; color: #64748b !important; }

/* モーダル */
#dvtv064 .gm-modal { position: fixed; inset: 0; background: rgba(15, 23, 42, .55); z-index: 99999;
  display: flex; align-items: center; justify-content: center; padding: 16px; }
#dvtv064 .gm-modal-box { background: #fff !important; border-radius: 14px; width: 560px; max-width: 96vw; max-height: 92vh;
  overflow-y: auto; padding: 18px; box-shadow: 0 20px 50px rgba(15, 23, 42, .35); }
#dvtv064 .gm-modal-head { display: flex; justify-content: space-between; align-items: center; font-size: 16px; font-weight: 800; margin-bottom: 12px; }
#dvtv064 .gm-x { border: none !important; background: transparent !important; font-size: 18px; cursor: pointer; color: #64748b !important; }
#dvtv064 .gm-fg { display: flex; flex-direction: column; gap: 5px; margin-bottom: 10px; }
#dvtv064 .gm-fg label { font-size: 12px; font-weight: 700; color: #475569 !important; }
#dvtv064 .gm-row2 { display: flex !important; flex-direction: row; gap: 10px; }
#dvtv064 .gm-row2 .gm-fg { flex: 1; }
#dvtv064 .gm-req { color: #ef4444 !important; font-size: 11px; margin-left: 5px; }
#dvtv064 .gm-preview { font-size: 12px; color: #0369a1 !important; min-height: 16px; }
#dvtv064 .gm-check { display: flex !important; flex-direction: row; align-items: center; gap: 6px; font-size: 12px !important; font-weight: 400 !important; }
#dvtv064 .gm-msg { color: #ef4444 !important; font-size: 13px; }

@media (max-width: 720px) {
  #dvtv064 .gm-filter input[type="text"] { width: 100% !important; flex: 1 1 100% !important; }
  #dvtv064 .gm-filter select { max-width: 48% !important; flex: 1 1 auto !important; }
  #dvtv064 .gm-merge-arrow { transform: rotate(90deg); align-self: center; }
}

/* ===== v1.1.0 削除・復元・紐づけ先モーダル ===== */
#dvtv064 .gm-btn-danger.gm-btn-sm { padding: 4px 8px !important; }
#dvtv064 .gm-ops { white-space: nowrap; }
#dvtv064 .gm-ops .gm-btn + .gm-btn { margin-left: 4px; }
#dvtv064 .gm-links-btn { border: none !important; background: #eef2ff !important; color: #6366f1 !important;
  border-radius: 999px !important; padding: 3px 12px !important; cursor: pointer; font-size: 13px !important; font-weight: 700; }
#dvtv064 .gm-links-btn:hover { background: #6366f1 !important; }
#dvtv064 .gm-links-btn:hover b { color: #fff !important; }
#dvtv064 .gm-l-sec { margin-bottom: 14px; }
#dvtv064 .gm-l-sec-h { font-weight: 800; font-size: 13px; color: #334155 !important; margin-bottom: 6px;
  border-bottom: 2px solid #e2e8f0; padding-bottom: 4px; }
#dvtv064 .gm-l-list { list-style: none !important; margin: 0 !important; padding: 0 !important; max-height: 220px; overflow-y: auto; }
#dvtv064 .gm-l-list li { padding: 6px 8px !important; border-bottom: 1px solid #f1f5f9; font-size: 13px; margin: 0 !important; }
#dvtv064 .gm-l-list li a { color: #0369a1 !important; text-decoration: none !important; }
#dvtv064 .gm-l-list li a:hover { text-decoration: underline !important; }
#dvtv064 .gm-l-sub { color: #94a3b8 !important; font-size: 11px; margin-left: 6px; }

/* ===== v1.3.0 工事メニューへ戻る ===== */
#dvtv064 .gm-menu-back { margin-left: auto !important; text-decoration: none !important;
  background: #f8fafc !important; border: 1px solid #cbd5e1 !important; color: #334155 !important; font-weight: 700; }
#dvtv064 .gm-menu-back:hover { background: #e0f2fe !important; }
