:root{
  --p-dark:#4c1d95; --p:#7c3aed; --p-soft:#f3e8ff;
  --k:#db2777; --k-soft:#fce7f3; --ink:#2b1650;
}
body{font-family:'Sarabun',sans-serif;color:var(--ink);min-height:100vh;
  background:linear-gradient(160deg,#f5f0ff 0%,#fff0f8 100%) fixed;}
.hero{background:linear-gradient(135deg,#4c1d95 0%,#7c3aed 45%,#ec4899 100%);
  color:#fff;padding:3.2rem 0 6rem;position:relative;overflow:hidden;}
.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.08)}
.hero:before{width:320px;height:320px;top:-120px;right:-80px}
.hero:after{width:220px;height:220px;bottom:-110px;left:-60px}
.hero .badge-year{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);
  padding:.35rem .9rem;border-radius:50rem;font-size:.9rem;backdrop-filter:blur(4px)}
.hero h1{font-weight:700;letter-spacing:.2px}
.card-float{margin-top:-4rem;border:0;border-radius:1.25rem;
  box-shadow:0 20px 45px -15px rgba(124,58,237,.35);}
.btn-grad{background:linear-gradient(90deg,#7c3aed,#db2777);border:0;color:#fff;font-weight:600;
  border-radius:.8rem;transition:.2s}
.btn-grad:hover{color:#fff;filter:brightness(1.08);transform:translateY(-1px);
  box-shadow:0 10px 20px -8px rgba(219,39,119,.6)}
.btn-outline-grad{border:2px solid var(--p);color:var(--p);border-radius:.8rem;font-weight:600}
.btn-outline-grad:hover{background:var(--p);color:#fff}
.form-control,.form-select{border-radius:.8rem;border:2px solid #e9d5ff}
.form-control:focus,.form-select:focus{border-color:var(--p);box-shadow:0 0 0 .25rem rgba(124,58,237,.18)}
.input-group-text{background:var(--p-soft);border:2px solid #e9d5ff;color:var(--p);border-radius:.8rem 0 0 .8rem}
.input-group .form-control{border-radius:0 .8rem .8rem 0}
.result-head{background:linear-gradient(90deg,#7c3aed,#ec4899);color:#fff;border-radius:1rem 1rem 0 0;padding:1.1rem 1.4rem}
.result-box{border:2px solid #e9d5ff;border-radius:1rem;background:#fff;overflow:hidden}
.info-row{display:flex;padding:.8rem 1.4rem;border-bottom:1px dashed #e9d5ff}
.info-row:last-child{border-bottom:0}
.info-row .lbl{width:38%;color:#7c6a9c;font-weight:500}
.info-row .val{width:62%;font-weight:600}
.room-pill{background:linear-gradient(90deg,#fce7f3,#f3e8ff);border:2px solid #f9a8d4;color:var(--k);
  border-radius:1rem;padding:1rem 1.4rem;text-align:center}
.room-pill .big{font-size:1.7rem;font-weight:700}
.alert-notfound{background:var(--k-soft);border:2px solid #f9a8d4;color:#9d174d;border-radius:1rem}
.site-footer{color:#7c6a9c;font-size:.9rem;padding:2rem 0}
/* admin */
.navbar-grad{background:linear-gradient(90deg,#4c1d95,#7c3aed 55%,#db2777)}
.stat{border:0;border-radius:1rem;color:#fff}
.stat.s1{background:linear-gradient(135deg,#7c3aed,#a855f7)}
.stat.s2{background:linear-gradient(135deg,#db2777,#f472b6)}
.table thead th{background:var(--p-soft);color:var(--p-dark);border-bottom:2px solid #e9d5ff;white-space:nowrap}
.page-link{color:var(--p)} .page-item.active .page-link{background:var(--p);border-color:var(--p)}
@media print{.no-print{display:none!important}.hero{padding:1rem 0 1rem}.card-float{margin-top:0;box-shadow:none}}
