.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin:12px 0 24px}
.card{display:block;border:1px solid #ddd;border-radius:12px;padding:14px;cursor:pointer;background:#fff;color:#222}
.card.on{border-color:#6c4cff;box-shadow:0 0 0 2px #6c4cff33}.card ul{padding-left:18px;font-size:.9em;margin:6px 0 0}
.price{font-size:1.4em;font-weight:700;margin:6px 0}.price small{font-size:.55em;font-weight:400;color:#666}
.pill{background:#e6f7ec;color:#137a3a;border-radius:8px;padding:2px 8px;font-size:.75em}.pill.x{background:#fff3e0;color:#a65c00}
.draft{color:#a65c00;font-weight:600}.summary{border:2px solid #6c4cff;border-radius:12px;padding:16px;background:#faf9ff;color:#222}
.total{font-size:1.3em;font-weight:700}.total small{font-size:.65em;font-weight:400}
.panel{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media(max-width:800px){.panel{grid-template-columns:1fr}}
.box{border:1px solid #ddd;border-radius:12px;padding:14px;background:#fff;color:#222}
#log{height:300px;overflow:auto;border:1px solid #eee;padding:8px;border-radius:8px;background:#fafafa}
.m{margin:6px 0;padding:6px 10px;border-radius:8px}.m.u{background:#ece8ff;text-align:right}.m.a{background:#eef7ee}
input[type=text],input[type=email],input[type=password],select{padding:8px;border:1px solid #ccc;border-radius:8px;width:100%;box-sizing:border-box;margin:4px 0}
.row{display:flex;gap:8px;align-items:center;justify-content:space-between;border-bottom:1px solid #eee;padding:6px 0}
.err{color:#b00020}
