:root{
  --bg1:#0b1020; --bg2:#1a2244; --card:#ffffff; --muted:#6b7280; --primary:#4f46e5;
}
*{box-sizing:border-box}
body{
  margin:0; background:linear-gradient(135deg,var(--bg1),var(--bg2) 55%,var(--bg1));
  font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial; color:#0f172a;
}
.wrap{max-width:1100px;margin:40px auto;padding:0 16px}
.card{background:var(--card);border-radius:14px;box-shadow:0 10px 35px rgba(0,0,0,.18);overflow:hidden}
.header{padding:26px 28px;background:#111827;color:#fff;display:flex;align-items:center;gap:14px}
.brand-dot{width:12px;height:12px;border-radius:50%;background:linear-gradient(135deg,#8b5cf6,#22c55e)}
h1{margin:0;font-size:20px}
.header small{color:#cbd5e1;display:block}

form{padding:24px 28px}
fieldset{border:1px solid #e5e7eb;border-radius:12px;padding:18px 16px;margin:18px 0;background:#fff}
legend{font-weight:800;padding:0 8px}
.grid{display:grid;gap:14px}
.cols-2{grid-template-columns:1fr 1fr}
.cols-3{grid-template-columns:repeat(3,1fr)}
.span-2{grid-column:1 / span 2}
.mt{margin-top:14px}
@media (max-width:900px){
  .cols-2,.cols-3{grid-template-columns:1fr}
  .span-2{grid-column:auto}
}

label{display:block;font-weight:700;margin:4px 0 6px}
.req:after{content:" *";color:#ef4444}
.hint{color:var(--muted);font-size:12px}

input,select,textarea,button{
  width:100%;border:1px solid #e5e7eb;border-radius:10px;padding:12px 14px;font:inherit;background:#fff
}
textarea{min-height:110px;resize:vertical}

.notice{display:flex;gap:10px;align-items:flex-start;padding:12px 16px;margin:6px 0 18px;border:1px dashed #cbd5e1;border-radius:10px;background:#f8fafc}
.badge{display:inline-block;padding:6px 10px;border-radius:999px;background:#eef2ff;color:#3730a3;font-weight:800;font-size:12px}

.planos{border-collapse:collapse;width:100%}
.planos th,.planos td{border:1px solid #e5e7eb;padding:10px;text-align:left}
.planos th{background:#f5f7fb}

.actions{display:flex;gap:12px;justify-content:flex-end;margin-top:16px}
.btn{cursor:pointer;border:0;border-radius:12px;padding:12px 18px;font-weight:800}
.btn-primary{background:var(--primary);color:#fff}
.btn-outline{background:#fff;border:2px solid #e5e7eb}

.alert{border-radius:10px;padding:12px 14px;margin:12px 28px 0;border:1px solid #fecaca;background:#fef2f2;color:#7f1d1d}
.ok{border-radius:10px;padding:12px 14px;margin:12px 28px 0;border:1px solid #a7f3d0;background:#ecfdf5;color:#065f46}
