/* WallInspector PWA — responsive mobile-first styles */
* { margin:0; padding:0; box-sizing:border-box; }
html { font-size:16px; -webkit-text-size-adjust:100%; }
body { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif; background:#f5f5f5; color:#333; min-height:100dvh; }

/* ── Layout ── */
.app-header { background:#1565c0; color:#fff; padding:0 16px; height:56px; display:flex; align-items:center; justify-content:space-between; position:sticky; top:0; z-index:100; }
.app-header h1 { font-size:1.1rem; font-weight:600; }
.app-header button { background:none; border:none; color:#fff; font-size:1.5rem; cursor:pointer; padding:4px 8px; }
main { padding:16px; max-width:600px; margin:0 auto; }

/* ── Cards ── */
.card { background:#fff; border-radius:8px; padding:16px; margin-bottom:12px; box-shadow:0 1px 3px rgba(0,0,0,.1); }
.card h3 { font-size:1rem; margin-bottom:8px; color:#1565c0; }

/* ── Forms ── */
.form-group { margin-bottom:16px; }
.form-group label { display:block; font-size:.85rem; color:#666; margin-bottom:4px; font-weight:500; }
.form-group input,.form-group select,.form-group textarea { width:100%; padding:10px 12px; border:1px solid #ddd; border-radius:6px; font-size:1rem; background:#fff; }
.form-group input:focus,.form-group select:focus,.form-group textarea:focus { border-color:#1565c0; outline:none; box-shadow:0 0 0 2px rgba(21,101,192,.15); }
.form-group textarea { resize:vertical; min-height:80px; }

/* ── Buttons ── */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:10px 20px; border:none; border-radius:6px; font-size:1rem; cursor:pointer; font-weight:500; text-decoration:none; }
.btn-primary { background:#1565c0; color:#fff; width:100%; }
.btn-primary:active { background:#0d47a1; }
.btn-outline { background:#fff; color:#1565c0; border:1px solid #1565c0; }
.btn-outline:active { background:#e3f2fd; }
.btn-danger { background:#fff; color:#d32f2f; border:1px solid #d32f2f; }
.btn-sm { padding:6px 12px; font-size:.85rem; }
.btn:disabled { opacity:.5; pointer-events:none; }

/* ── List ── */
.list-item { display:flex; align-items:center; padding:12px 0; border-bottom:1px solid #eee; cursor:pointer; }
.list-item:last-child { border-bottom:none; }
.list-item .info { flex:1; }
.list-item .info .title { font-weight:500; margin-bottom:2px; }
.list-item .info .subtitle { font-size:.8rem; color:#888; }
.list-item .arrow { color:#ccc; font-size:1.2rem; }

/* ── Badges ── */
.badge { display:inline-block; padding:2px 8px; border-radius:10px; font-size:.75rem; font-weight:500; }
.badge-success { background:#e8f5e9; color:#2e7d32; }
.badge-warning { background:#fff3e0; color:#e65100; }
.badge-error { background:#ffebee; color:#c62828; }
.badge-admin { background:#e3f2fd; color:#1565c0; }

/* ── Progress ── */
.progress-bar { height:4px; background:#e0e0e0; border-radius:2px; margin-bottom:16px; }
.progress-bar .fill { height:100%; background:#1565c0; border-radius:2px; transition:width .3s; }

/* ── Photos ── */
.photo-grid { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.photo-thumb { width:80px; height:80px; border-radius:6px; object-fit:cover; border:1px solid #eee; cursor:pointer; position:relative; }
.photo-thumb-wrap { position:relative; display:inline-block; }
.photo-thumb-wrap .remove { position:absolute; top:-6px; right:-6px; background:#d32f2f; color:#fff; border:none; border-radius:50%; width:22px; height:22px; font-size:14px; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.photo-actions { display:flex; gap:8px; }

/* ── Empty State ── */
.empty { text-align:center; padding:40px 20px; color:#999; }
.empty .icon { font-size:3rem; margin-bottom:12px; }

/* ── Steps List ── */
.step-list .step-item { display:flex; align-items:center; padding:12px; margin-bottom:8px; border-radius:8px; background:#fff; cursor:pointer; }
.step-list .step-item.locked { opacity:.5; cursor:default; }
.step-list .step-item .step-icon { width:40px; height:40px; display:flex; align-items:center; justify-content:center; font-size:1.2rem; margin-right:12px; }
.step-list .step-item .step-icon.done { color:#2e7d32; }
.step-list .step-item .step-icon.current { color:#1565c0; }

/* ── FAB ── */
.fab { position:fixed; bottom:24px; right:24px; width:56px; height:56px; border-radius:50%; background:#1565c0; color:#fff; border:none; font-size:28px; cursor:pointer; box-shadow:0 4px 12px rgba(21,101,192,.4); display:flex; align-items:center; justify-content:center; z-index:50; }

/* ── Alerts ── */
.alert { padding:12px; border-radius:6px; margin-bottom:12px; font-size:.9rem; }
.alert-error { background:#ffebee; color:#c62828; }
.alert-success { background:#e8f5e9; color:#2e7d32; }

/* ── Switch ── */
.switch-row { display:flex; align-items:center; justify-content:space-between; padding:12px 0; }
.switch-row label { font-size:.9rem; }
.toggle { width:44px; height:24px; background:#ccc; border-radius:12px; position:relative; cursor:pointer; transition:background .2s; }
.toggle.on { background:#1565c0; }
.toggle::after { content:''; width:20px; height:20px; background:#fff; border-radius:50%; position:absolute; top:2px; left:2px; transition:transform .2s; }
.toggle.on::after { transform:translateX(20px); }

/* ── Toast ── */
.toast { position:fixed; bottom:20px; left:20px; right:20px; background:#333; color:#fff; padding:12px 16px; border-radius:8px; font-size:.9rem; z-index:200; animation:fadeIn .3s; max-width:400px; margin:0 auto; }
@keyframes fadeIn { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }

/* ── Responsive ── */
@media (min-width:600px) {
  .photo-thumb { width:100px; height:100px; }
}
