/* ===== Modal ===== */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:200;
  justify-content:center;align-items:flex-end;padding:0}
.modal-overlay.open{display:flex}
.modal-content{background:#fff;border-radius:24px 24px 0 0;width:100%;max-width:720px;
  max-height:85vh;overflow-y:auto;padding:0;animation:slideUp .25s ease-out}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.modal-header{display:flex;justify-content:space-between;align-items:center;
  padding:14px 20px;border-bottom:1px solid #eee;position:sticky;top:0;background:#fff;
  border-radius:24px 24px 0 0;z-index:1}
.modal-header h2{font-size:1.2rem}
.btn-close{font-size:2.4rem;color:#999;padding:4px 12px;line-height:1;min-width:48px;
  min-height:48px;display:flex;align-items:center;justify-content:center}
.modal-body{padding:14px 20px}
.modal-section{margin-bottom:14px}
.modal-section h3{font-size:1rem;font-weight:700;color:#1a237e;margin-bottom:6px;
  padding-bottom:4px;border-bottom:2px solid #e8eaf6}
.modal-stay-info{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:6px}
.modal-stay-detail{font-size:.9rem;color:#444}
.modal-hero{display:flex;align-items:center;gap:16px;margin-bottom:16px;
  padding:16px;background:#f5f7ff;border-radius:14px}
.modal-hero-badges{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.modal-hero-badge{padding:8px 16px;border-radius:10px;font-size:1.1rem;font-weight:700}
.modal-hero-badge.hero-occupied{background:#bbdefb;color:#0d47a1}
.modal-hero-badge.hero-departing{background:#ffe0b2;color:#e65100}
.modal-hero-badge.hero-vacant{background:#c8e6c9;color:#2e7d32}
.modal-hero-badge.hero-stay{background:#fce4ec;color:#c62828}
.modal-hero-badge.hero-policy{background:#e1bee7;color:#6a1b9a}
.modal-hero-badge.hero-type{background:#e8eaf6;color:#3949ab}
.modal-big-status{min-width:180px;min-height:80px;padding:20px 28px;border-radius:16px;
  font-size:1.5rem;font-weight:800;text-align:center;flex-shrink:0;
  transition:all .15s;cursor:pointer;border:none}
.modal-big-status.TODO{background:#e3f2fd;color:#1565c0;border:4px solid #90caf9}
.modal-big-status.IN_PROGRESS{background:#fff3e0;color:#ef6c00;border:4px solid #ffcc80}
.modal-big-status.DONE{background:#e8f5e9;color:#2e7d32;border:4px solid #a5d6a7}
.modal-big-status:active{transform:scale(.95)}
.exc-btn-group{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.exc-btn{padding:10px 16px;border-radius:10px;font-size:.95rem;font-weight:600;
  min-height:46px;border:2px solid #e0e0e0;transition:all .15s}
.exc-btn:hover{border-color:#1a237e;background:#f5f7ff}
.exc-btn.selected{border-color:#1a237e;background:#e8eaf6;color:#1a237e}
.modal-form-row{display:flex;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.modal-input{flex:1;min-width:120px;padding:10px 14px;border:2px solid #e0e0e0;border-radius:10px;
  font-size:1rem;min-height:46px}
.modal-input:focus{outline:none;border-color:#1a237e}
.btn-add{background:#1a237e;color:#fff;padding:10px 20px;border-radius:10px;
  font-size:1rem;font-weight:600;min-height:46px;white-space:nowrap}
.btn-add:hover{background:#283593}
.btn-delete{background:#ffcdd2;color:#c62828;padding:6px 14px;border-radius:8px;
  font-size:.85rem;font-weight:600;margin-left:8px;min-height:36px}
.item-list{list-style:none}
.item-list li{padding:8px 12px;border-radius:8px;margin-bottom:4px;background:#fafafa;
  display:flex;justify-content:space-between;align-items:center;font-size:.95rem}
.severity-btns{display:flex;gap:6px}
.sev-btn{padding:10px 16px;border-radius:8px;font-size:.95rem;font-weight:600;
  border:2px solid #e0e0e0;min-height:44px}
.sev-btn.selected{border-width:2px}
.sev-btn.low.selected{border-color:#2e7d32;background:#e8f5e9;color:#2e7d32}
.sev-btn.medium.selected{border-color:#ef6c00;background:#fff3e0;color:#ef6c00}
.sev-btn.high.selected{border-color:#c62828;background:#ffebee;color:#c62828}

/* ===== Exception Image Upload ===== */
.exc-img-row{display:flex;gap:8px;margin-bottom:8px;align-items:center}
.exc-img-btn{display:flex;align-items:center;gap:6px;padding:10px 16px;border-radius:10px;
  font-size:.95rem;font-weight:600;min-height:44px;border:2px solid #e0e0e0;background:#fff;
  color:#555;transition:all .15s}
.exc-img-btn:hover{border-color:#1a237e;background:#f5f7ff;color:#1a237e}
.exc-img-btn .icon{font-size:1.1rem}
.exc-img-preview{display:none;margin-bottom:8px}
.exc-img-preview img{max-width:100%;max-height:120px;border-radius:8px;border:2px solid #e0e0e0}
.exc-img-preview .remove-img{background:#ffcdd2;color:#c62828;padding:4px 12px;border-radius:8px;
  font-size:.8rem;font-weight:600;margin-left:10px;min-height:32px}
.item-list .exc-thumb{width:48px;height:48px;object-fit:cover;border-radius:6px;margin-right:8px;
  flex-shrink:0;border:1px solid #e0e0e0}
