body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;margin:0;background:#f6f7fb;color:#111}
.container{max-width:980px;margin:0 auto;padding:24px}
.card{background:#fff;border-radius:14px;box-shadow:0 6px 18px rgba(0,0,0,.06);padding:18px;margin:14px 0}
.h1{font-size:24px;font-weight:800;margin:0 0 8px}
.p{margin:8px 0;line-height:1.4}
.row{display:flex;gap:12px;flex-wrap:wrap}
.row>*{flex:1}
label{font-weight:700;font-size:13px;display:block;margin:10px 0 6px}
input,select,textarea{width:100%;padding:10px 12px;border:1px solid #d7dbe7;border-radius:10px;font-size:14px;box-sizing:border-box}
textarea{min-height:80px;resize:vertical}
.btn{display:inline-block;border:0;border-radius:12px;padding:10px 14px;font-weight:800;cursor:pointer;text-decoration:none}
.btn-primary{background:#111;color:#fff}
.btn-ghost{background:#eef1fb;color:#111}
.btn-danger{background:#b00020;color:#fff}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.badge{background:#eef1fb;padding:8px 10px;border-radius:999px;font-weight:800}
.timer{font-size:18px}
table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border-radius:14px}
th,td{padding:10px;border-bottom:1px solid #eef1fb;font-size:13px;text-align:left;vertical-align:top}
th{background:#f2f4ff;font-weight:900}
tr:last-child td{border-bottom:0}
.small{font-size:12px;color:#444}
.right{float:right}
.muted{color:#555}
.sec{font-weight:900}
.sec.good{color:#0a7}
.sec.warn{color:#b00020}
.hr{height:1px;background:#eef1fb;margin:14px 0}

/* подсветка ошибок */
.badcell{
  color:#b00020;
  font-weight:900;
  background:#fff3f3;
  border-radius:8px;
}

.badrow td{
  background: #fff7f7;
}

.badcell { background:#fff3f3; color:#b00020; font-weight:700; }
.badrow  { background:#fff7f7; }