*{box-sizing:border-box}
:root{
  --navy:#071b33;
  --navy2:#0d2b4e;
  --ink:#172033;
  --muted:#667085;
  --line:#d9e0e7;
  --paper:#ffffff;
  --bg:#f4f7fa;
  --accent:#1597a5;
  --accent2:#0d7782;
  --good:#146c43;
  --bad:#b42318;
}
html{font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--ink)}
body{margin:0;line-height:1.5}
a{color:var(--accent2)}
.page-shell{max-width:860px;margin:0 auto;padding:22px}
.page-shell.wide{max-width:1500px}
.site-head,.admin-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:6px 0 18px}
.brand{font-weight:800;text-decoration:none;color:var(--navy);font-size:1.08rem}
.card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 8px 30px rgba(4,23,43,.07)}
.card.narrow{max-width:520px;margin:60px auto}
h1{font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.08;margin:.2rem 0 .7rem;color:var(--navy)}
h2{color:var(--navy)}
.intro{font-size:1.06rem;color:#445168;max-width:700px}
.eyebrow{font-size:.78rem;font-weight:800;letter-spacing:.12em;color:var(--accent2)}
.feedback-form{margin-top:24px}
fieldset{border:0;border-top:1px solid var(--line);padding:22px 0;margin:0}
legend{font-weight:800;color:var(--navy);padding:22px 0 0;width:100%}
.rating-row{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:14px}
.rate-box input{position:absolute;opacity:0}
.rate-box span{display:flex;align-items:center;justify-content:center;min-height:50px;border:2px solid var(--line);border-radius:12px;font-weight:800;background:#fff;cursor:pointer}
.rate-box input:checked+span{border-color:var(--accent);background:#eaf8f9;color:var(--navy)}
.scale{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted);margin-top:6px}
.choice-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.choice-row label,.check-line{display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px 13px;background:#fff;cursor:pointer}
.field{margin:20px 0}
.field label{display:block;font-weight:800;margin-bottom:7px;color:var(--navy)}
input[type=text],input[type=email],input[type=password],select,textarea{
  width:100%;font:inherit;border:1px solid #bfc8d2;border-radius:10px;padding:12px;background:#fff;color:var(--ink)
}
textarea{resize:vertical}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(21,151,165,.18);border-color:var(--accent)}
.optional{font-weight:400;color:var(--muted);font-size:.88rem}
.contact-box{margin:24px 0;border:1px solid var(--line);border-radius:14px;padding:15px 16px;background:#fafcfd}
.contact-box summary{font-weight:800;cursor:pointer;color:var(--navy)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.button{display:inline-block;border:0;border-radius:11px;padding:12px 18px;font:inherit;font-weight:800;text-decoration:none;cursor:pointer}
.button.primary{background:var(--navy);color:#fff}
.button.primary:hover{background:var(--navy2)}
.button.secondary{background:#fff;color:var(--navy);border:1px solid var(--line)}
.small{font-size:.85rem;color:var(--muted)}
.centre{text-align:center}
.notice{padding:13px 15px;border-radius:10px;margin:14px 0}
.notice.error{background:#fff0ee;color:var(--bad);border:1px solid #f6c6c0}
.notice.success{background:#edf9f1;color:var(--good);border:1px solid #bfe5cc}
.footer{text-align:center;padding:22px 0}
.thankyou{text-align:center;padding:50px 28px}
.tick{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;background:#eaf8f0;color:var(--good);font-size:2.4rem;font-weight:800}
.hp{position:absolute;left:-9999px;top:-9999px}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}
.stat strong{display:block;color:var(--navy);font-size:1.55rem}
.stat span{color:var(--muted)}
.admin-actions{display:flex;gap:8px;flex-wrap:wrap}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th,td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:10px}
th{color:var(--navy);background:#f8fafc}
.comments{min-width:290px}
.comments p{margin:0 0 9px}
@media(max-width:720px){
  .page-shell{padding:12px}
  .card{padding:20px 16px;border-radius:14px}
  .contact-grid,.stats-grid{grid-template-columns:1fr}
  .admin-head{align-items:flex-start;flex-direction:column}
  .choice-row{display:grid;grid-template-columns:1fr}
}
