:root{--ok:#28A745;--warn:#FFC107;--err:#DC3545;--bg:#f7f9fc;--text:#1a1f36;--primary:#1f6feb;}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  background:var(--bg);color:var(--text);
  min-height:100vh;display:flex;flex-direction:column
}
.container{max-width:1200px;margin:20px auto;padding:0 16px;flex:1}
.main-header{
  display:flex;justify-content:space-between;align-items:center;
  padding:10px 16px;background:#fff;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:10
}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit}
.brand .logo{height:40px}
.brand .title{font-weight:700;font-size:18px}
.nav a{margin:0 8px;text-decoration:none;color:#333}
.nav a:hover{color:var(--primary)}
.dropdown{position:relative;display:inline-block}
.dropbtn{background:#fff;border:1px solid #e5e7eb;padding:6px 10px;border-radius:6px;cursor:pointer}
.dropdown-content{display:none;position:absolute;background-color:#fff;min-width:160px;box-shadow:0 8px 16px rgba(0,0,0,.1);z-index:1}
.dropdown-content a{color:#333;padding:8px 12px;text-decoration:none;display:block}
.dropdown:hover .dropdown-content{display:block}

.main-footer{
  margin-top:auto;background:#fff;border-top:1px solid #e5e7eb;
  padding:12px 16px;text-align:center
}

.card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:16px;margin-bottom:16px}
.btn{display:inline-block;background:var(--primary);color:#fff;border:none;border-radius:8px;padding:8px 12px;text-decoration:none;cursor:pointer}
.btn.secondary{background:#6b7280}
.btn.danger{background:var(--err)}
.btn.success{background:var(--ok)}
.btn.warning{background:var(--warn);color:#111}
.table{width:100%;border-collapse:collapse;background:#fff}
.table th,.table td{border:1px solid #e5e7eb;padding:8px;text-align:left}
.table th{background:#f3f4f6}

input[type=text],input[type=password],input[type=datetime-local],input[type=date],input[type=number],select,textarea{
  width:100%;padding:8px;border:1px solid #e5e7eb;border-radius:8px
}
.grid{display:grid;gap:12px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}

.alert{padding:10px;border-radius:8px;margin:10px 0}
.alert.info{background:#e0f2fe}
.alert.error{background:#fee2e2}
.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px}
.badge.pending{background:var(--warn)} .badge.approved{background:var(--ok);color:#fff} .badge.rejected{background:var(--err);color:#fff}
.legend{display:flex;gap:12px;margin:8px 0}
.legend .box{width:14px;height:14px;display:inline-block;border-radius:3px;margin-right:6px}
.legend .p{background:var(--warn)} .legend .a{background:var(--ok)} .legend .r{background:var(--err)}

/* Week grid */
.calendar-grid{display:grid;grid-template-columns:80px repeat(7,1fr);border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#fff}
.calendar-grid .cell{border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;padding:4px;min-height:38px;position:relative}
.calendar-grid .head{background:#f9fafb;font-weight:600;text-align:center}
.calendar-grid .time{background:#f9fafb;text-align:right;padding-right:6px;font-size:12px}
/* Week grid */
/*.week-grid{display:block;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}*/
/*.wg-row{display:grid;grid-template-columns:80px repeat(7,1fr);min-height:32px;border-bottom:1px solid #f1f5f9}*/
/*.wg-header{background:#f8fafc;font-weight:600}*/
/*.wg-timecell{padding:6px 8px;border-right:1px solid #f1f5f9}*/
/*.wg-daycell{padding:6px 8px;text-align:center;border-left:1px solid #f1f5f9}*/
/*.wg-cell{border-left:1px solid #f1f5f9;padding:2px 4px}*/
/*.event{position:relative;border-radius:6px;padding:4px 6px;font-size:12px;border:1px solid rgba(0,0,0,.06);margin:2px 0;background:#eef2ff}*/
/*.event.approved{background:#22c55e;color:#fff}*/
/*.event.pending{background:#fde68a}*/
/*.event.rejected{background:#ef4444;color:#fff}*/
/* Week grid (nếu chưa có) */
.week-grid{display:block;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#fff}
.wg-row{display:grid;grid-template-columns:80px repeat(7,1fr);min-height:32px;border-bottom:1px solid #f1f5f9}
.wg-header{background:#f8fafc;font-weight:600}
.wg-timecell{padding:6px 8px;border-right:1px solid #f1f5f9}
.wg-daycell{padding:6px 8px;text-align:center;border-left:1px solid #f1f5f9}
.wg-cell{border-left:1px solid #f1f5f9;padding:2px 4px}
.event{position:relative;border-radius:6px;padding:4px 6px;font-size:12px;border:1px solid rgba(0,0,0,.06);margin:2px 0;background:#eef2ff}
.event.approved{background:#22c55e;color:#fff}
.event.pending{background:#fde68a}
.event.rejected{background:#ef4444;color:#fff}
/* Normalize all controls */
input[type=text], input[type=password], input[type=number],
input[type=date], input[type=time], input[type=month],
input[type=datetime-local], select, textarea {
  width: 100%;
  padding: 8px 10px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  font: inherit;
  line-height: 1.3;
  box-sizing: border-box;
  appearance: none;
}
select { padding-right: 28px; }
label { display:block; font-weight:600; margin:6px 0; }


/* Event block */
/*.event{position:absolute;left:2px;right:2px;border-radius:6px;padding:4px 6px;font-size:12px;color:#111;overflow:hidden;border:1px solid rgba(0,0,0,.05)}*/
/*.event.pending{background:var(--warn)}*/
/*.event.approved{background:var(--ok);color:#fff}*/
/*.event.rejected{background:var(--err);color:#fff}*/
/* Event block: xếp chồng (không absolute để thấy nhiều sự kiện cùng giờ) */
.event{
  position:relative; /* was absolute */
  border-radius:6px;padding:4px 6px;font-size:12px;color:#111;
  overflow:hidden;border:1px solid rgba(0,0,0,.05); margin:2px 0;
}
.event.pending{background:var(--warn)}
.event.approved{background:var(--ok);color:#fff}
.event.rejected{background:var(--err);color:#fff}

/* Floor maps */
.floor{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:16px}
.floor h3{margin-top:0}
.floor .plan{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:70px;gap:8px;margin-top:12px}
.room{border:2px solid #ef4444;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:700;background:#fff}
.room .cap{font-weight:500;font-size:12px;margin-top:2px;color:#111}
.block{border:2px dashed #94a3b8;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:12px;color:#475569;background:#f8fafc}

/* Floor 5 (đẹp rồi – giữ nguyên) */
.f5-508{grid-column:1/3;grid-row:1} .f5-507{grid-column:3/5;grid-row:1}
.f5-elev{grid-column:5/9;grid-row:1} .f5-stair{grid-column:9/10;grid-row:1}
.f5-506{grid-column:10/11;grid-row:1} .f5-505{grid-column:11/12;grid-row:1} .f5-504{grid-column:12/13;grid-row:1}
.f5-mgmt{grid-column:1/5;grid-row:3}
.f5-hall3{grid-column:1/5;grid-row:2}
.f5-hall1{grid-column:5/9;grid-row:2}
.f5-hall2{grid-column:9/13;grid-row:2}
.f5-501{grid-column:10/11;grid-row:3} .f5-502{grid-column:11/12;grid-row:3} .f5-503{grid-column:12/13;grid-row:3}

/* Floor 6 – căn như sơ đồ mẫu (giống 99%) */
/* Floor 6 – căn giống tầng 5 (99%) */
.f6-607{grid-column:1/3;grid-row:1}
.f6-606{grid-column:3/5;grid-row:1}
.f6-elev{grid-column:5/9;grid-row:1}
.f6-stair{grid-column:9/10;grid-row:1}
.f6-605{grid-column:10/11;grid-row:1}
.f6-604{grid-column:11/12;grid-row:1}
.f6-603{grid-column:12/13;grid-row:1}

/*.f5-mgmt{grid-column:1/5;grid-row:2}*/
.f6-hall1{grid-column:1/5;grid-row:2}
.f6-hall2{grid-column:5/9;grid-row:2}
.f6-hall3{grid-column:9/13;grid-row:2}

.f6-608{grid-column:1/4;grid-row:3}
.f6-609{grid-column:4/5;grid-row:3}
.f6-hall{grid-column:5/10;grid-row:3}
.f6-601{grid-column:10/11;grid-row:3}







/* Normalize all controls (including type=month) */
input[type=text], input[type=password], input[type=number],
input[type=date], input[type=time], input[type=month],
input[type=datetime-local], select, textarea {
  width: 100%;
  padding: 8px 10px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  font: inherit;
  line-height: 1.3;
  box-sizing: border-box;
  -webkit-appearance: none; appearance: none;
}
/* Buttons not stretched */
button, .btn { display:inline-flex; align-items:center; gap:6px; padding:8px 14px; border-radius:8px; height:auto; line-height:1.2; }
.grid .btn { width:auto; }

/* Week grid / event style */
.week-grid{display:block;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#fff}
.wg-row{display:grid;grid-template-columns:80px repeat(7,1fr);min-height:32px;border-bottom:1px solid #f1f5f9}
.wg-header{background:#f8fafc;font-weight:600}
.wg-timecell{padding:6px 8px;border-right:1px solid #f1f5f9}
.wg-daycell{padding:6px 8px;text-align:center;border-left:1px solid #f1f5f9}
.wg-cell{border-left:1px solid #f1f5f9;padding:2px 4px}
.event{position:relative;border-radius:6px;padding:4px 6px;font-size:12px;border:1px solid rgba(0,0,0,.06);margin:2px 0;background:#eef2ff}
.event .em2{font-size:11px;opacity:.92;margin-top:1px}
.event.approved{background:#22c55e;color:#fff}
.event.pending{background:#fde68a}
.event.rejected{background:#ef4444;color:#fff}

/* Maps link reset */
#maps a, .maps a, .plan a, .plan a.room, .floor a { text-decoration:none; color:inherit; }

/* Ensure inputs inside .card consistent */
.card input:not([type=checkbox]):not([type=radio]),
.card select, .card textarea { border-radius:8px; border:1px solid #e5e7eb; }
button, .btn { display:inline-flex; align-items:center; gap:6px; padding:8px 14px; border-radius:8px; height:auto; line-height:1.2; }
.grid .btn { width:auto; }  /* tránh nút Lọc full-width */
input[type=month]{ font:inherit; } /* đồng bộ font ô tháng */
