*{box-sizing:border-box}body{margin:0;background:#0e1c2d;color:#ecf4ff;font:15px system-ui,Arial,sans-serif}header{background:#152a41;padding:16px 24px;display:flex;align-items:center;gap:18px;border-bottom:1px solid #35516b}header strong{font-size:22px}header span{color:#9dbbd7;font-size:12px;letter-spacing:1px}header form{margin-left:auto}main{max-width:1040px;margin:36px auto;padding:0 16px}.panel{border:1px solid #37536d;background:#172c44;padding:22px;border-radius:13px;margin-bottom:16px}.login{max-width:420px;margin:10vh auto}.login form{display:grid;gap:15px}.login label{display:grid;gap:7px}input{background:#0f2235;color:white;border:1px solid #6686a3;padding:11px;border-radius:8px;font:inherit}button{padding:10px 15px;background:#263f58;border:1px solid #55718d;border-radius:8px;color:#fff;cursor:pointer;font:inherit}.primary{background:#2563eb;border-color:#4b8eff;font-weight:700}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.cards .panel{display:grid;gap:12px}.cards b{font-size:33px}.cards small,.muted{color:#b5c9da}.alert{color:#ffb5b5;margin:12px 0}li{margin:9px 0}footer{text-align:center;color:#8aa0b6;padding:30px}@media(max-width:580px){.cards{grid-template-columns:1fr}header{flex-wrap:wrap}}
.facility-form{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:12px;margin:22px 0}.facility-form label,.row-form label{display:grid;gap:6px;color:#bed0e4;font-size:13px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:620px}th,td{text-align:left;border-bottom:1px solid #35516b;padding:13px 9px}th{color:#a9c9e8;font-size:13px}td details{min-width:160px}summary{cursor:pointer;color:#a9c9e8}.row-form{display:grid;gap:10px;margin:10px 0}.row-form input{width:100%}.status{padding:5px 9px;border-radius:20px;font-size:12px}.status.active{background:#183f35;color:#a8f0c9}.status.inactive{background:#38404a;color:#cbd5df}.notice{color:#a8f0c9;background:#183f35;padding:12px;border-radius:8px}@media(max-width:680px){.facility-form{grid-template-columns:1fr}.facility-form button{width:100%}}

select{background:#0f2235;color:#fff;border:1px solid #6686a3;padding:11px;border-radius:8px;font:inherit;width:100%;min-width:145px}
input[type=number]{width:100%;min-width:110px}h3{margin-top:30px}


/* V1.7.1 UI polish: clearer action hierarchy */
h1{margin:0 0 10px}
h2{margin:0 0 12px}
p{line-height:1.45}
button{
  min-height:42px;
  transition:background-color .15s ease,border-color .15s ease,transform .05s ease,box-shadow .15s ease;
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset;
}
button:hover,.action-summary:hover{filter:brightness(1.06)}
button:active,.action-summary:active{transform:translateY(1px)}
button.primary{
  background:#2563eb;
  border-color:#5b98ff;
  color:#fff;
  font-weight:700;
}
button.secondary{
  background:#203447;
  border-color:#6f8aa3;
  color:#eaf4ff;
  font-weight:600;
}
button.warning{
  background:#47252a;
  border-color:#b97881;
  color:#ffd9dd;
  font-weight:700;
}
.action-summary{
  display:inline-block;
  list-style:none;
  padding:8px 12px;
  border-radius:8px;
  background:#203447;
  border:1px solid #6f8aa3;
  color:#eaf4ff;
  font-weight:600;
  margin:2px 0;
}
details > summary::-webkit-details-marker{display:none}
details[open] > summary{margin-bottom:10px}
td{vertical-align:top}
.row-form,
details form{margin-top:8px}
.row-form button,
details form button{margin-top:4px}
.notice,.alert{
  margin:14px 0 16px;
}
.alert{
  background:#47252a;
  border:1px solid #b97881;
  color:#ffd9dd;
  padding:12px;
  border-radius:8px;
}
.notice{
  border:1px solid #4c8b69;
}
.table-scroll table tr:last-child td{border-bottom:none}
@media(max-width:680px){
  th,td{padding:11px 7px}
  .panel{padding:18px}
}

/* V1.8 roster */
.person-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0 25px}.person-form label,.roster-tools label,.person-edit label{display:grid;gap:7px;color:#bed0e4;font-size:13px}.person-form input,.person-edit input,.roster-tools input{width:100%}.form-action{align-self:end}.roster-tools{display:grid;grid-template-columns:2fr 2fr 1fr;gap:12px;margin:16px 0}.person-edit{display:grid;gap:10px;min-width:230px}.person-edit label{font-size:12px}.person-edit button{margin-top:8px}#rosterTable{min-width:920px}#rosterTable td{vertical-align:top}@media(max-width:760px){.person-form,.roster-tools{grid-template-columns:1fr}.form-action button{width:100%}}

/* V1.9 class entry */
.class-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}
.class-grid label,.att-row label{display:grid;gap:6px;color:#bed0e4;font-size:13px}
.class-grid input,.class-grid select,.att-row input,.att-row select{width:100%;min-width:0}
.att-row{border:1px solid #44617b;border-radius:11px;padding:15px;margin:12px 0;background:#14273c}
.att-head,.class-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.att-head button{min-height:35px}
.att-existing{margin-top:10px}
.att-new{margin-top:10px}
[hidden]{display:none!important}
@media(max-width:700px){.class-grid{grid-template-columns:1fr}.class-actions button{width:100%}}
