:root{
  --bg:#f5f7fa;
  --card:#ffffff;
  --text:#0f172a;
  --muted:#64748b;
  --line:#e2e8f0;
  --primary:#1e88e5;
  --accent:#19b7b0;
}
.req {
  color: #d32f2f;        /* красная звезда */
  font-weight: 700;
  margin-left: 4px;
  cursor: help;          /* курсор-подсказка */
}

*{box-sizing:border-box}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:var(--bg);
  color:var(--text);
}

.container{max-width:900px; margin:0 auto; padding:18px;}
.topbar{
  background: linear-gradient(90deg, var(--primary), var(--accent));
  color:#fff;
}
.brand{font-weight:700; letter-spacing:0.4px;}
.brand-sub{opacity:.9; font-size:13px;}

.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:16px;
  margin-top:18px;
  box-shadow: 0 6px 16px rgba(15,23,42,.06);
}

h1{margin-top:0; font-size:26px;}
.muted{color:var(--muted)}
.small{font-size:13px}

.notice{
  border:1px solid rgba(25,183,176,.35);
  background: rgba(25,183,176,.08);
  padding:12px 14px;
  border-radius:12px;
  margin:14px 0;
}

.form{margin-top:14px;}
.field{margin:10px 0;}
.field label{display:block; font-weight:600; margin-bottom:6px;}
.field input{
  width:100%;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  outline:none;
}
.field input:focus{border-color: rgba(30,136,229,.55);}

.grid2{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
}
@media (max-width:720px){
  .grid2{grid-template-columns:1fr;}
}

.checkbox{
  display:flex;
  gap:10px;
  align-items:center;
}
.checkbox input{width:auto}

.options ul{list-style:none; padding-left:0; margin:0;}
.options li{
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  margin:10px 0;
  background:#fff;
}
.options label{display:flex; gap:10px; align-items:center; cursor:pointer;}
.options input{width:auto}

.actions{margin-top:16px;}
.btn{
  display:inline-block;
  border:none;
  background: linear-gradient(90deg, var(--primary), var(--accent));
  color:#fff;
  padding:11px 16px;
  border-radius:12px;
  font-weight:700;
  cursor:pointer;
  text-decoration:none;
}
.btn:hover{opacity:.95}

.progress{
  color:var(--muted);
  font-size:13px;
  margin-bottom:10px;
}

.footer{padding:24px 0; text-align:center;}

.messages{margin-bottom:14px;}
.msg{
  padding:10px 12px;
  border-radius:12px;
  border:1px solid var(--line);
  background:#fff;
  margin:8px 0;
}
.msg.error{border-color: rgba(239,68,68,.35); background: rgba(239,68,68,.08);}
.msg.success{border-color: rgba(34,197,94,.35); background: rgba(34,197,94,.08);}
