:root
    {
 --bg:#f6f7fb;
  --surface:#fff;
  --soft:#f9fafb;
  --ink:#111827;
  --muted:#667085;
  --line:#d6dbe5;
  --primary:#2f3fe3;
  --primary-dark:#1e2bbd;
  --primary-soft:#eef0ff;
  --success:#16803c;
  --success-soft:#e8f7ee;
  --warning:#b45309;
  --warning-soft:#fff7ed;
  --danger:#c81e1e;
  --danger-soft:#fff1f2;
  --radius:7px;
  --shadow:0 10px 24px rgba(17,24,39,.07);
  --focus:0 0 0 4px rgba(47,63,227,.22);
    }

* { box-sizing: border-box; margin: 0; padding: 0; } /* everything tight */

img { vertical-align: top; } /* remove 3px jog */


html, body {
    background: #f4f4f4;
    font-family: 'Open Sans','Lato', system-ui, -apple-system, sans-serif;
    font-size: 16px;
    line-height: 1.4;
    }

section { width: 100%; background: #fff; padding: 0 20px; } }
section > div { max-width: 1200px; margin: 0 auto; padding: 30px 0 20px 0; background: linear-gradient(to right, #1a469a, #659bf7); }

main > div { max-width: 1200px; margin: 0 auto; padding: 20px; }

header { width: 100%; background: #fff; color: #000; border-bottom: 1px solid #ccc; }

header > div { max-width: 1200px; margin: 0 auto; padding: 10px; }

footer > div { max-width: 1200px; margin: 0 auto; padding: 20px; text-align: center; font-size: 0.9rem; }

.grid-1{display:grid;gap:20px;grid-template-columns:repeat(1,minmax(0,1fr));margin-bottom:20px}
.grid-2{display:grid;gap:20px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:20px}
.grid-3{display:grid;gap:20px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:20px}
.grid-4{display:grid;gap:20px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:20px}

.card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}
.card h2{margin:0 0 8px;font-size:1.35rem}.card p{color:var(--muted)}

.page-center {
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 20px;
}

.page-center .card {
  width: 100%;
  max-width: 400px;
}

.field label{display:block;font-weight:600;margin-bottom:7px}.field small{display:block;color:var(--muted);margin-top:6px}

input,select,textarea,.readonly{width:100%;min-height:50px;padding:12px 13px;border:1px solid #cbd3df;border-radius:var(--radius);background:white;color:var(--ink)}

textarea{min-height:118px;resize:vertical}.readonly{background:var(--soft);display:flex;align-items:center}

input:focus,select:focus,textarea:focus,.btn:focus,a:focus{outline:none;box-shadow:var(--focus)}

input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:var(--danger)}

input[type="submit"], button { font-family: inherit; font-weight: 500; font-size: 16px; padding: 10px 15px;
        background: var(--primary); color: #fff; width: 100%; }

.card input { margin-bottom: 20px; }

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;border-radius:var(--radius);border:1px solid transparent;padding:0 18px;font-weight:600;cursor:pointer;text-decoration:none;transition:background-color 0.2s ease;width:100%;}

.btn-primary{background:var(--primary);color:white}
.btn-primary:hover{background:var(--primary-dark);text-decoration:none}
.btn-secondary{background:var(--primary-soft);color:var(--primary);border-color:#dfe3ff}
.btn-ghost{background:white;color:var(--ink);border-color:var(--line)}
.btn-danger{background:var(--danger-soft);color:var(--danger);border-color:#fecdd3}

