.est-wrap { max-width: 880px; margin: 0 auto; padding: 24px 20px 96px; }
.est-wrap h1 { font-size: clamp(22px, 3vw, 30px); }
.est-steps { display:flex; gap:8px; flex-wrap:wrap; margin: 0 0 28px; padding:0; list-style:none; }
.est-steps li {
  font-size: 13px; padding: 6px 12px; border-radius: 999px;
  background: var(--bg-sub); color: var(--muted); border: 1px solid var(--line);
}
.est-steps li.is-active { background: var(--accent); color: #fff; border-color: var(--accent); }
.est-steps li.is-done { background: #fff; color: var(--accent); border-color: var(--accent); }
.field { margin: 0 0 18px; }
.field label { display:block; font-weight:600; margin:0 0 6px; font-size:14px; }
.field .req { color: #b33; font-size:12px; margin-left:6px; }
.field input[type=text], .field input[type=tel], .field input[type=email],
.field select, .field textarea {
  width:100%; box-sizing:border-box; padding:12px 14px; border:1px solid var(--line);
  border-radius:4px; font: inherit; background:#fff;
}
.field textarea { min-height: 88px; resize: vertical; }
.item-card {
  border:1px solid var(--line); border-radius:4px; padding:16px; margin:0 0 16px; background:#fff;
}
.item-card h3 { margin:0 0 12px; font-size:16px; display:flex; justify-content:space-between; align-items:center; }
.photo-grid { display:grid; grid-template-columns: repeat(3,1fr); gap:8px; margin-top:8px; }
@media(min-width:768px){ .photo-grid { grid-template-columns: repeat(4,1fr); } }
.photo-thumb {
  position:relative; aspect-ratio:1; border:1px solid var(--line); border-radius:4px; overflow:hidden; background:var(--bg-sub);
}
.photo-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.photo-thumb button {
  position:absolute; top:4px; right:4px; border:0; background:rgba(0,0,0,.65); color:#fff;
  width:28px; height:28px; border-radius:50%; font-size:14px; line-height:1;
}
.photo-add {
  aspect-ratio:1; border:1px dashed var(--accent); border-radius:4px; background:#fff;
  display:flex; align-items:center; justify-content:center; color:var(--accent); font-size:13px;
  cursor:pointer; text-align:center; padding:8px;
}
.btn-row { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.admin-table { width:100%; border-collapse:collapse; font-size:14px; }
.admin-table th, .admin-table td { border-bottom:1px solid var(--line); padding:12px 8px; text-align:left; vertical-align:top; }
.admin-table th { color:var(--muted); font-weight:600; font-size:12px; }
.badge { display:inline-block; font-size:12px; padding:2px 8px; border-radius:999px; background:var(--bg-sub); }
.badge.received { background:#EEF4FF; color:#245; }
.badge.replied { background:#EAF7EE; color:#163; }
.badge.accepted { background:#F7F0E6; color:#643; }
.line-rows input { width:100%; box-sizing:border-box; padding:8px 10px; border:1px solid var(--line); border-radius:4px; font:inherit; }
.preview-banner {
  background:#FFF6E8; border:1px solid #E8D2B0; color:#5A3F1C; padding:10px 14px; font-size:13px; margin:0 0 20px; border-radius:4px;
}
.confirm-box { background:var(--bg-sub); border-radius:4px; padding:16px 18px; margin:0 0 16px; }
.confirm-box h3 { margin:0 0 8px; font-size:15px; }
.confirm-box p, .confirm-box li { margin:0 0 4px; font-size:14px; }
.mail-mock {
  border:1px solid var(--line); border-radius:4px; background:#fff; padding:16px 18px; margin:16px 0;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size:13px; line-height:1.6;
}
.estimate-total { font-size:22px; font-family: var(--font-serif); color:var(--accent); margin:12px 0; }

.trouble-case-grid{display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:768px){.trouble-case-grid{grid-template-columns:1fr 1fr}}
.trouble-case{background:#fff;border:1px solid var(--line);border-radius:4px;padding:22px 20px}
.trouble-case h3{margin:0 0 10px;font-size:18px}
.trouble-case .ask{font-weight:600;margin:0 0 8px}
.trouble-case .answer{margin:0;font-size:14px;color:var(--muted)}
.trouble-case .tag{display:inline-block;font-size:12px;color:var(--accent);margin-bottom:8px;letter-spacing:.04em}
.lead-box{background:var(--bg-sub);border-radius:4px;padding:28px 24px;text-align:center;margin:32px 0}
