/* Minimal helper styles for slot states */
.slot-grid { display: grid; gap: 10px; }
.slot-cell {
  border: 1px solid #d8dee9; border-radius: 10px; padding: 10px;
  text-align: center; cursor: pointer; user-select: none;
  box-shadow: 0 2px 8px rgba(0,0,0,.06); transition: transform .08s ease, box-shadow .12s ease;
  background: #fff;
}
.slot-cell:hover { transform: translateY(-1px); box-shadow: 0 6px 14px rgba(0,0,0,.08); }
.slot-cell.is-selected { outline: 2px solid #0ea5e9; box-shadow: 0 0 0 4px rgba(14,165,233,.15); }
.slot-cell.is-unavailable,
.slot-cell[aria-disabled="true"] {
  opacity: .5; cursor: not-allowed; background: #f8fafc;
}
.isb-steps { display: none !important; }


.isb-loader {
    text-align:center;
    padding:20px;
    color:#374151;
}
.isb-loader .spinner {
    width:32px;
    height:32px;
    border:4px solid #d1d5db;
    border-top:4px solid #1d4ed8;
    border-radius:50%;
    margin:0 auto 10px;
    animation: spin 1s linear infinite;
}
@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
