/* ============================================================
   Fast & Fresh — Classic UI (2000s/2010s plain CSS)
   Small fonts · bordered boxes · table-driven
   ============================================================ */
* { box-sizing: border-box; }
/* Font Awesome removed — neutralise any leftover icon tags */
i.fa, i.fas, i.far, i.fab, i[class^="fa-"], i[class*=" fa-"]{ display:none; }
body{
  font-family: Verdana, Tahoma, Arial, sans-serif;
  font-size: 11px; color:#333; background:#dfe6ec; margin:0;
}
a{ color:#1a4f8a; text-decoration:none; }
a:hover{ text-decoration:underline; }
img{ border:0; }
h1,h2,h3,h4{ margin:0; }

/* ---- Page frame ---- */
.wrap{ width:1000px; max-width:98%; margin:8px auto; background:#fff;
  border:1px solid #8ba0b3; }
.appbar{ background:#3a6ea5; background:linear-gradient(#4a7fb5,#2f5e92);
  color:#fff; padding:7px 12px; border-bottom:2px solid #244a73;
  display:flex; align-items:center; gap:10px; }
.appbar .logo{ width:26px;height:26px;background:#fff;color:#2f5e92;font-weight:bold;
  text-align:center;line-height:26px;border-radius:3px;font-size:14px; }
.appbar .title{ font-size:14px; font-weight:bold; letter-spacing:.3px; }
.appbar .title small{ font-weight:normal; font-size:10px; opacity:.85; display:block; }
.appbar .spacer{ flex:1; }
.appbar .who{ font-size:11px; color:#dceafc; }
.appbar .who b{ color:#fff; }
.appbar .who a{ color:#ffe9a8; }

/* ---- Menu bar (tabs) ---- */
.menubar{ background:#e7eef4; border-bottom:1px solid #8ba0b3; padding:0; display:flex; flex-wrap:wrap; }
.menubar a{ display:inline-block; padding:6px 13px; font-size:11px; font-weight:bold;
  color:#244a73; border-right:1px solid #c3d2df; }
.menubar a:hover{ background:#d6e2ec; text-decoration:none; }
.menubar a.active{ background:#fff; color:#000; border-bottom:2px solid #fff; margin-bottom:-1px; }
.menubar .sub{ color:#8aa; font-weight:normal; padding:6px 8px; }

.crumbs{ background:#f3f6f9; border-bottom:1px solid #d6dee6; padding:6px 12px; font-size:11px; color:#666;
  display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.crumbs b{ color:#222; }
.crumbs .actions{ margin-left:auto; display:flex; gap:6px; flex-wrap:wrap; }

.content{ padding:12px; }

/* ---- Section box (legacy .card) ---- */
.card,.box{ border:1px solid #b8c4d0; background:#fff; margin-bottom:12px; }
.card-head,.box-head{ background:#eaf0f6; border-bottom:1px solid #b8c4d0;
  padding:5px 9px; font-weight:bold; font-size:12px; color:#244a73;
  display:flex; align-items:center; justify-content:space-between; gap:8px; }
.card-head h3{ font-size:12px; font-weight:bold; }
.card-body,.box-body,.card-pad{ padding:10px; }

/* ---- Stat tiles ---- */
.stats-grid{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.stat{ flex:1; min-width:130px; border:1px solid #b8c4d0; background:#f7fafc; padding:8px 10px; }
.stat .ico{ display:none; }
.stat .val{ font-size:20px; font-weight:bold; color:#2f5e92; }
.stat .lbl{ font-size:10px; color:#555; text-transform:uppercase; letter-spacing:.03em; }

/* ---- Buttons ---- */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:5px; vertical-align:middle;
  font-family:inherit; font-size:11px; padding:4px 10px; cursor:pointer; white-space:nowrap;
  border:1px solid #8a98a6; background:#f4f4f4; background:linear-gradient(#fdfdfd,#e2e6ea);
  color:#222; border-radius:3px; text-decoration:none; line-height:15px; }
.btn i{ font-size:11px; line-height:1; }
.btn:hover{ background:linear-gradient(#fff,#dde2e7); text-decoration:none; }
.btn:active{ background:#dde2e7; }
.btn-primary{ border-color:#2f5e92; color:#fff; background:linear-gradient(#5b9bd5,#2e6da4); }
.btn-primary:hover{ background:linear-gradient(#6aa6db,#2a6299); }
.btn-success{ border-color:#3a7d44; color:#fff; background:linear-gradient(#5cb85c,#3d8b40); }
.btn-danger{ border-color:#a23b3b; color:#fff; background:linear-gradient(#e06666,#c0392b); }
.btn-warning{ border-color:#b07d1a; color:#fff; background:linear-gradient(#f0ad4e,#d2901f); }
.btn-light{ }
.btn-sm{ padding:2px 7px; font-size:10px; }
.btn-icon{ padding:2px 6px; }
.btn-block{ display:block; width:100%; text-align:center; padding:6px; }
.btn:disabled{ opacity:.5; cursor:default; }

/* ---- Forms ---- */
.form-grid{ display:flex; flex-wrap:wrap; gap:10px 16px; }
.form-grid .field{ flex:1; min-width:200px; }
.field{ margin-bottom:8px; }
.field label{ display:block; font-weight:bold; font-size:11px; color:#333; margin-bottom:2px; }
.field label .req{ color:#c0392b; }
.field .hint{ font-size:10px; color:#888; }
.input,select,textarea,input[type=text],input[type=password],input[type=date],input[type=number],input[type=tel],input[type=file]{
  font-family:inherit; font-size:11px; color:#222; background:#fff;
  border:1px solid #8a98a6; padding:3px 5px; }
.input,select,textarea{ width:100%; }
textarea{ min-height:70px; height:auto; }
/* uniform height for single-line controls so inline rows align */
.input,select,input[type=text],input[type=password],input[type=date],input[type=number],input[type=tel]{ height:28px; }
.input:focus,select:focus,textarea:focus{ outline:1px solid #5b9bd5; border-color:#5b9bd5; }
fieldset{ border:1px solid #b8c4d0; padding:8px 10px; margin-bottom:10px; }
legend{ font-weight:bold; color:#244a73; padding:0 4px; }

/* ---- Inline form rows (add entry / import / upload) ---- */
.inline-form{ display:flex; flex-wrap:wrap; gap:8px; align-items:flex-end; }
.inline-form .field{ margin:0; }
.inline-form .btn{ height:28px; }
.inline-form input[type=file]{ height:28px; padding:3px 4px; }

/* ---- Tables ---- */
.table-wrap{ overflow-x:auto; }
table.tbl{ width:100%; border-collapse:collapse; font-size:11px; border:1px solid #b8c4d0; }
.tbl thead th{ text-align:left; background:#5b7fa6; color:#fff; font-weight:bold;
  padding:4px 7px; border:1px solid #4a6b8a; white-space:nowrap; }
.tbl tbody td{ padding:4px 7px; border:1px solid #d6dee6; }
.tbl tbody tr:nth-child(even){ background:#f3f6f9; }
.tbl tbody tr:hover{ background:#fff7d6; }
.tbl tfoot td{ padding:4px 7px; border:1px solid #b8c4d0; background:#eaf0f6; font-weight:bold; }
.tbl .mono{ font-family:'Courier New',monospace; font-weight:bold; color:#1a4f8a; }
.cell-strong{ font-weight:bold; }
.cell-muted{ color:#777; font-size:10px; }

/* ---- Badges ---- */
.badge{ display:inline-block; font-size:10px; font-weight:bold; padding:1px 6px; border:1px solid;
  border-radius:2px; line-height:14px; }
.badge-success{ background:#e7f6e7; color:#2e7d32; border-color:#a5d6a7; }
.badge-warning{ background:#fff4e0; color:#b06a00; border-color:#ffcc80; }
.badge-error,.badge-danger{ background:#fdeaea; color:#c0392b; border-color:#ef9a9a; }
.badge-secondary{ background:#eef1f4; color:#555; border-color:#cdd6df; }
.badge-info{ background:#e6f2fb; color:#1a6aa5; border-color:#a8d3f0; }
.badge-primary{ background:#e7eef7; color:#2f5e92; border-color:#aac3e0; }

/* ---- Alerts ---- */
.alert{ font-size:11px; padding:6px 9px; margin-bottom:10px; border:1px solid; }
.alert i{ display:none; }
.alert-success{ background:#e7f6e7; color:#2e7d32; border-color:#a5d6a7; }
.alert-error{ background:#fdeaea; color:#c0392b; border-color:#ef9a9a; }
.alert-info{ background:#e6f2fb; color:#1a6aa5; border-color:#a8d3f0; }
.alert-warning{ background:#fff4e0; color:#b06a00; border-color:#ffcc80; }

/* ---- Toolbar / filters ---- */
.toolbar{ display:flex; flex-wrap:wrap; gap:8px; align-items:flex-end; margin-bottom:10px;
  background:#f3f6f9; border:1px solid #d6dee6; padding:8px 10px; }
.toolbar .field{ margin:0; }
.toolbar .btn{ height:28px; }
.search{ position:relative; }
.search i{ display:none; }
.search input{ width:auto; min-width:180px; }

/* ---- Misc ---- */
.empty{ text-align:center; padding:24px 12px; color:#888; }
.empty i{ font-size:24px; color:#bcc7d2; display:block; margin-bottom:6px; }
.empty h4{ font-size:12px; color:#555; margin-bottom:3px; }
.muted{ color:#888; }
.grid-2{ display:flex; gap:12px; flex-wrap:wrap; }
.grid-2 > *{ flex:1; min-width:300px; }
.flex{ display:flex; } .items-center{ align-items:center; } .gap{ gap:6px; } .between{ justify-content:space-between; }
.mt{ margin-top:10px; } .mb{ margin-bottom:10px; }
.drop{ border:1px dashed #8a98a6; background:#f7fafc; padding:8px; display:flex; gap:8px; align-items:center; }
.drop .dico{ display:none; }
.drop input[type=file]{ width:auto; }

/* ---- Modal (kept for student/campus quick add) ---- */
.modal-overlay{ display:none; position:fixed; inset:0; background:rgba(0,0,0,.4); z-index:100; }
.modal-overlay.open{ display:block; }
.modal{ width:520px; max-width:94%; margin:60px auto; background:#fff; border:2px solid #2f5e92; }
.modal-head{ background:#3a6ea5; color:#fff; padding:5px 9px; font-weight:bold; font-size:12px;
  display:flex; justify-content:space-between; align-items:center; }
.modal-head h3{ font-size:12px; color:#fff; }
.modal-body{ padding:10px; }
.modal-foot{ padding:8px 10px; border-top:1px solid #ccc; background:#f3f6f9; text-align:right; }
.modal-close{ background:none; border:0; color:#fff; font-size:15px; cursor:pointer; }

/* ---- Toast ---- */
.toast-wrap{ position:fixed; top:8px; right:8px; z-index:200; }
.toast{ background:#333; color:#fff; padding:6px 12px; font-size:11px; margin-bottom:6px; border:1px solid #000; }
.toast.ok{ background:#2e7d32; } .toast.err{ background:#c0392b; }

/* ---- Print ---- */
@media print{
  body{ background:#fff; font-size:11px; }
  .noprint,.appbar,.menubar,.crumbs,.btn,.toolbar{ display:none !important; }
  .wrap{ width:auto; border:0; margin:0; }
  .print-sheet table{ width:100%; border-collapse:collapse; }
  .print-sheet th,.print-sheet td{ border:1px solid #000; padding:4px 6px; font-size:11px; }
}
