/* ===== Front Board ===== */
.front-table{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;
  overflow:hidden;box-shadow:0 2px 6px rgba(0,0,0,.08)}
.front-table th{background:#1a237e;color:#fff;padding:14px 12px;font-size:1rem;
  text-align:left;white-space:nowrap;user-select:none}
.front-table th.sortable{cursor:pointer;position:relative;padding-right:28px}
.front-table th.sortable:hover{background:#283593}
.front-table th.sortable::after{content:'⇅';position:absolute;right:8px;top:50%;
  transform:translateY(-50%);font-size:.85rem;opacity:.5}
.front-table th.sortable.asc::after{content:'▲';opacity:1}
.front-table th.sortable.desc::after{content:'▼';opacity:1}
.front-table td{padding:14px 12px;border-bottom:1px solid #eee;font-size:1.05rem;vertical-align:top}
.front-table tr:last-child td{border-bottom:none}
.front-table tr:hover{background:#f5f7ff}
.room-status{font-weight:700;font-size:.95rem;padding:6px 12px;border-radius:8px;display:inline-block}
.room-status.occupied{background:#e8f5e9;color:#2e7d32}
.room-status.departing{background:#fff3e0;color:#ef6c00}
.room-status.vacant{background:#e0e0e0;color:#555}
.front-table .room-num{font-weight:800;font-size:1.3rem;cursor:pointer;color:#1a237e;
  text-decoration:underline;text-decoration-style:dotted}
