*{box-sizing:border-box;margin:0;padding:0}
body{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;background:#f6faf8;color:#0f172a;line-height:1.5}
.wrap{max-width:980px;margin:0 auto;padding:16px}
.top{display:flex;justify-content:space-between;align-items:center;padding:10px 0}
.logo{font-weight:800;color:#059669;font-size:20px;text-decoration:none}
.hero{background:#059669;color:#fff;border-radius:16px;padding:30px 22px;margin:10px 0}
.hero h1{font-size:25px;margin-bottom:8px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px}
.card h3{font-size:15px;margin:4px 0}
.harga{color:#059669;font-weight:700}
.kat{font-size:11px;background:#ecfdf5;color:#047857;padding:2px 8px;border-radius:99px;display:inline-block}
.btn{display:inline-block;background:#059669;color:#fff;border:0;border-radius:8px;padding:9px 14px;font-weight:600;cursor:pointer;text-decoration:none;font-size:14px}
.btn.small{padding:6px 10px;font-size:12px}.btn.warn{background:#f59e0b}.btn.ghost{background:#e2e8f0;color:#0f172a}
table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;font-size:13px;margin:8px 0}
th,td{padding:8px 10px;text-align:left;border-bottom:1px solid #f1f5f9;vertical-align:top}
th{background:#ecfdf5;color:#047857;font-size:12px}
.badge{padding:2px 8px;border-radius:99px;font-size:11px;font-weight:600;background:#e2e8f0}
.badge.baru{background:#fef3c7;color:#92400e}.badge.ditawar{background:#e0e7ff;color:#3730a3}
.badge.diterima,.badge.dikerjakan{background:#cffafe;color:#155e75}.badge.selesai{background:#dcfce7;color:#166534}
form.stacked{display:grid;gap:10px;background:#fff;padding:16px;border-radius:12px;border:1px solid #e2e8f0}
input,select,textarea{width:100%;padding:9px;border:1px solid #cbd5e1;border-radius:8px;font-size:14px}
.muted{color:#64748b;font-size:12px}
.struk{background:#fff;border-radius:12px;padding:16px;border:1px solid #e2e8f0}
.struk .row{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px dashed #e2e8f0;font-size:14px}
.foto{max-width:140px;border-radius:8px;margin:4px 4px 0 0}
h2{margin:16px 0 10px;font-size:18px}