/* ===== Badges & Tags ===== */
.badge{display:inline-block;padding:4px 12px;border-radius:8px;font-size:.95rem;font-weight:600;
  vertical-align:middle;margin:2px 3px}
.badge-type{background:#e8eaf6;color:#3949ab}
.badge-stay{background:#fce4ec;color:#c62828}
.badge-stay.single{background:#e3f2fd;color:#1565c0}
.badge-policy{padding:4px 12px;border-radius:8px;font-size:.95rem;font-weight:600}
.badge-policy.DEFAULT{background:#e0e0e0;color:#333}
.badge-policy.NO_CLEAN{background:#bbdefb;color:#0d47a1}
.badge-policy.MAKEUP{background:#e1bee7;color:#6a1b9a}
.badge-policy.REQUESTED{background:#ffe0b2;color:#e65100}
.tag-exception{display:inline-block;padding:5px 14px;border-radius:8px;font-size:.95rem;
  font-weight:600;margin:3px;background:#ffcdd2;color:#b71c1c}
.tag-exception.DND{background:#ef9a9a;color:#b71c1c}
.tag-exception.MAINTENANCE{background:#ffe0b2;color:#e65100}
.tag-exception.LOST_FOUND{background:#fff9c4;color:#f57f17}
.tag-exception.SUPPLY{background:#bbdefb;color:#0d47a1}
.tag-exception.LATE_CHECKOUT{background:#e1bee7;color:#6a1b9a}
.tag-exception.OTHER{background:#e0e0e0;color:#424242}
.tag-severity{display:inline-block;padding:4px 12px;border-radius:8px;font-size:.9rem;font-weight:700}
.tag-severity.low{background:#e8f5e9;color:#2e7d32}
.tag-severity.medium{background:#fff3e0;color:#ef6c00}
.tag-severity.high{background:#ffebee;color:#c62828}

/* ===== Room Photo ===== */
.room-photo{width:100%;height:140px;border-radius:12px;overflow:hidden;margin-bottom:10px;
  position:relative;background-color:#f5f0e8}
.room-photo-label{position:absolute;bottom:0;left:0;right:0;padding:8px 14px;
  background:linear-gradient(transparent,rgba(0,0,0,.55));color:#fff;font-weight:700;
  font-size:1rem;display:flex;justify-content:space-between;align-items:center}
.room-photo-label .room-type-tag{background:rgba(255,255,255,.25);padding:4px 14px;
  border-radius:6px;font-size:.85rem;font-weight:600;backdrop-filter:blur(4px)}

/* ===== Room Indicators (Modal overlay) ===== */
.room-indicators{position:absolute;top:12px;left:12px;display:flex;gap:8px;flex-wrap:wrap;z-index:2}
.room-ind{padding:6px 14px;border-radius:20px;font-size:.8rem;font-weight:700;
  backdrop-filter:blur(8px);box-shadow:0 2px 8px rgba(0,0,0,.2);letter-spacing:.03em}
.room-ind.ind-occupied{background:rgba(33,150,243,.88);color:#fff}
.room-ind.ind-departing{background:rgba(255,152,0,.88);color:#fff}
.room-ind.ind-vacant{background:rgba(76,175,80,.88);color:#fff}
.room-ind.ind-TODO{background:rgba(120,120,120,.85);color:#fff}
.room-ind.ind-IN_PROGRESS{background:rgba(30,136,229,.88);color:#fff}
.room-ind.ind-DONE{background:rgba(56,142,60,.88);color:#fff}
.room-ind.ind-exc{background:rgba(229,57,53,.88);color:#fff}

/* ===== Room Indicator Grid ===== */
.ri-floor-section{margin-bottom:16px}
.ri-floor-label{font-size:.95rem;font-weight:700;color:#1a237e;margin-bottom:8px;
  padding:4px 14px;background:#e8eaf6;border-radius:8px;display:inline-block}
.ri-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px}
.ri-cell{background:#fff;border-radius:8px;padding:6px 8px;
  box-shadow:0 1px 3px rgba(0,0,0,.07);display:flex;flex-direction:column;
  gap:2px;cursor:pointer;transition:transform .1s;
  border-left:5px solid #ccc;min-height:0}
.ri-cell:active{transform:scale(.96)}
.ri-cell.st-occupied{border-left-color:#1e88e5;background:#f3f8ff}
.ri-cell.st-departing{border-left-color:#f57c00;background:#fff8f0}
.ri-cell.st-vacant{border-left-color:#66bb6a;background:#f5fef5}
.ri-room-num{font-size:1.15rem;font-weight:800;color:#1a1a2e;line-height:1}
.ri-badges{display:flex;gap:3px;flex-wrap:wrap;align-items:center}
.ri-badge{display:inline-block;padding:1px 6px;border-radius:4px;font-size:.6rem;
  font-weight:700;white-space:nowrap;line-height:1.4}
.ri-badge.occupied{background:#bbdefb;color:#0d47a1}
.ri-badge.departing{background:#ffe0b2;color:#e65100}
.ri-badge.vacant{background:#c8e6c9;color:#2e7d32}
.ri-badge.task-TODO{background:#e0e0e0;color:#555}
.ri-badge.task-IN_PROGRESS{background:#fff3e0;color:#ef6c00}
.ri-badge.task-DONE{background:#e8f5e9;color:#2e7d32}
.ri-guest{font-size:.6rem;color:#888;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ri-exc-tags{display:flex;gap:2px;flex-wrap:wrap}
.ri-exc-tag{font-size:.55rem;padding:1px 5px;border-radius:3px;background:#ffcdd2;color:#b71c1c;font-weight:600}
.ri-policy-tag{font-size:.55rem;padding:1px 5px;border-radius:3px;font-weight:600}
.ri-policy-tag.NO_CLEAN{background:#bbdefb;color:#0d47a1}
.ri-policy-tag.MAKEUP{background:#e1bee7;color:#6a1b9a}
.ri-policy-tag.REQUESTED{background:#ffe0b2;color:#e65100}
.ri-legend{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:14px;padding:8px 14px;
  background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.ri-legend-item{display:flex;align-items:center;gap:4px;font-size:.75rem;color:#555}
.ri-legend-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}

/* ===== Toast Notification ===== */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);
  padding:12px 24px;border-radius:8px;font-size:14px;font-weight:600;z-index:9999;
  opacity:0;transition:opacity .3s,transform .3s;pointer-events:none;
  box-shadow:0 4px 12px rgba(0,0,0,.25);max-width:90vw;text-align:center}
.toast-visible{opacity:1;transform:translateX(-50%) translateY(0)}
.toast-error{background:#d32f2f;color:#fff}
.toast-success{background:#388e3c;color:#fff}

/* ===== Responsive ===== */
@media(min-width:600px){
  .modal-overlay{align-items:center;padding:24px}
  .modal-content{border-radius:24px;max-height:80vh}
  .modal-header{border-radius:24px 24px 0 0}
}
